Как я могу отправить FormData, используя XmlHttpRequest и карту для просмотра свойств модели - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь отправить некоторые значения в объекте FormData с помощью XmlHttpRequest в контроллер. Дело в том, что когда я делаю это локально (localhost), данные правильно сопоставляются со свойствами 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 };
}

1 Ответ

0 голосов
/ 17 июня 2019

Попробуйте это решение:

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(),false);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    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 };
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...