ASP.NET MVC 3 - 我们可以在jQuery AJAX调用上使用模型绑定吗?

RPM*_*984 9 asp.net-mvc jquery json model-binding asp.net-mvc-3

如果我有以下jQuery函数(在外部文件中):

function getResults(field1, field2, field3) {
   $.get('/Search/GetResults', { id: field1, type: field2, blah: field3 }, function(data) {
      $('#target').html(data);
   });
}
Run Code Online (Sandbox Code Playgroud)

这基本上从表单中获取了一堆字段,将它们发送到一个action方法(返回一个PartialViewResult),并将结果绑定到一个目标div.

这是动作方法:

[HttpGet]
public PartialViewResult GetResults(int id, int type, string blah)
{
   var model = repository.GetResults(id, type, blah);
   return PartialView("Results", model);
}
Run Code Online (Sandbox Code Playgroud)

这里可以使用模型绑定吗?我们可以这样做:

function getResults(someModel) {
   $.get('/Search/GetResults', { model: someModel }, function(data) {
      $('#target').html(data);
   });
}
Run Code Online (Sandbox Code Playgroud)

还有这个:

[HttpGet]
public PartialViewResult GetResults(SearchPreferences prefs)
{
   var model = repository.GetResults(prefs);
   return PartialView("Results", model);
}
Run Code Online (Sandbox Code Playgroud)

或者我应该构建一个JSON对象并传递它?目前,这些值是通过单独的jQuery DOM调用检索的:

var field1 = $('#field1').val();
var field2 = $('#field2').val();
Run Code Online (Sandbox Code Playgroud)

目标是减少/简化jQuery代码.我有所有这些调用来获取所有值,然后我需要将它们全部作为参数传递.

理想情况下,我想传递一个对象.

有什么建议?

编辑:刚刚意识到我可能能够在ASP.NET MVC 3中使用新的JSON模型绑定功能.现在阅读它...(在此期间可以提前回答).

Cha*_*eus 4

在 ASP.NET MVC 3 中,是的!查看TheGu 本人提供的这个链接。

ASP.NET MVC 3 现在包含对将基于 JSON 的参数从客户端 JavaScript 发布到服务器上的操作方法的内置支持。这使得在客户端和服务器之间交换数据以及构建丰富的 JavaScript 前端变得更加容易。