通过ajax请求将对象传递给控制器
我已经填充了对象SearchHomeModel并希望通过ajax请求将此对象传递给控制器。我的控制器的原型如下:通过ajax请求将对象传递给控制器
public ActionResult DataTableUserList(SearchHomeModel search, int iDisplayStart, int iDisplayLength, string sEcho)
,我Concat的它的URL字符串:
url = "/User/DataTableUserList?SearchHomeModel.FirstName=" + Model.SearchKeys.FirstName +
"&SearchHomeModel.LastName=" + Model.SearchKeys.LastName +
"&SearchHomeModel.Title=" + Model.SearchKeys.Title +
"&SearchHomeModel.Company=" + Model.SearchKeys.Company;
(然后通过这个链接直接调用Ajax)
,当我在调试器中调用DataTableUserList看我看到iDisplayStart有价值,但搜索为空。如何在我的情况下通过这个对象?谢谢
为什么不将表单序列化并发送到您的操作方法?如果您使用表单元素绑定了模型,那么您将获得一个有效的模型,并在其中填充值。
$.post("/User/DataTableUserList", $("form").serialize(), function (data) {
//do what you want with the response from your action method
});
您可以尝试像...
$.ajax({
url: '/User/DataTableUserList',
data: {
FirstName : '@Model.SearchKeys.FirstName',
LastName : '@Model.SearchKeys.LastName',
Title: '@Model.SearchKeys.Title',
Company: '@Model.SearchKeys.Company'
},
success: function(result){
// Do Something with Result
}
});
希望的MVC模型绑定就做好了这样的想你。
为什么它可能在搜索对象内? – John 2012-01-16 17:39:36
尝试这样做,而不是:
url = "/User/DataTableUserList?search.FirstName=" + Model.SearchKeys.FirstName +
"&search.LastName=" + Model.SearchKeys.LastName +
"&search.Title=" + Model.SearchKeys.Title +
"&search.Company=" + Model.SearchKeys.Company;
我希望这有助于:-)
忍不住:( – John 2012-01-16 16:43:41
看一看这个[链接] [1] [1]:HTTP: //*.com/questions/5980389/proper-way-to-use-ajax-post-in-jquery-to-pass-model-from-strongly-typed-mvc3-vie – Anwar 2012-01-14 17:38:51
也在这里http:// *。 com/questions/4120212/mvc-ajax-json-post-to-controller-action-method – 2012-01-14 17:49:43