вызов Ajax jQuery - параметры данных не передаются действию Контроллера MVC

Я передаю два строковых параметра из jQuery ajax, звонят в метод контроллера MVC, ожидая json ответ назад. Я вижу, что параметры заполняются на стороне клиента, но параметры соответствия на стороне сервера являются пустыми.

Вот JavaScript:

$.ajax({  
  type: "POST",  
  contentType: "application/json; charset=utf-8",  
  url: "List/AddItem",  
  data: "{ ListID: '1', ItemName: 'test' }",  
  dataType: "json",  
  success: function(response) { alert("item added"); },  
  error: function(xhr, ajaxOptions, thrownError) { alert(xhr.responseText); }
});

Вот метод контроллера:

Function AddItem(ByVal ListID As String, ByVal ItemName As String) As JsonResult
   'code removed for brevity
   'ListID is nothing and ItemName is nothing upon arrival.
   return nothing
End Function

Что я делаю неправильно?

32
задан Electric Coffee 22 May 2014 в 13:32
поделиться

1 ответ

Я пытался:

<input id="btnTest" type="button" value="button" />

<script type="text/javascript">
    $(document).ready( function() {
      $('#btnTest').click( function() {
        $.ajax({
          type: "POST", 
          url: "/Login/Test",
          data: { ListID: '1', ItemName: 'test' },
          dataType: "json",
          success: function(response) { alert(response); },
          error: function(xhr, ajaxOptions, thrownError) { alert(xhr.responseText); }
        });
      });
    });
</script>

и C#:

[HttpPost]
public ActionResult Test(string ListID, string ItemName)
{
    return Content(ListID + " " + ItemName);
}

Это сработало. Удалить contentType и установить data без двойных кавычек.

32
ответ дан 27 November 2019 в 21:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: