首页 > 解决方案 > 如何使用 XmlHttpRequest 发送 FormData 并映射到 viewmodel 属性

问题描述

我正在尝试使用 XmlHttpRequest 将 FormData 对象中的一些值发送到控制器。问题是当我在本地(本地主机)执行此操作时,数据会正确映射到 ViewModel 的属性,并且一切正常。当我在我们的生产环境中尝试这样做时,似乎这些值没有映射到 ViewModel。(发布发生在同一个 url 上)
- 是否有任何我不知道的安全检查?
- 有没有人有任何建议做什么或去哪里看?

JS:
var payload = new FormData();
payload.append('TestTitle', $('#TestTitle').text());
payload.append('TestId', $('#TestId').val());
payload.append('TestGuid', $('#TestGuid').val());

var xhr = new XMLHttpRequest();
xhr.addEventListener('readystatechange', onStateChange);
xhr.open('POST', '/test/savetest?rand=' + Math.random());
xhr.send(payload);

------
C#:
[HttpPost]
public ActionResult SaveTest(TestViewModel model)
{
   if (ModelState.IsValid)
   {
       //do stuff
   }
   return new JsonResult() { Data = new { Success = false }, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}

标签: javascriptc#asp.net-mvcmodelxmlhttprequest

解决方案


经过一番调查,我发现 POST 由于安全设置而被阻止。


推荐阅读