【发布时间】:2009-10-01 18:06:38
【问题描述】:
我想使用 jQuery 提交一个表单并将其提交给控制器操作进行处理,以包含所有模型属性,这可能吗?
【问题讨论】:
标签: jquery asp.net-mvc
我想使用 jQuery 提交一个表单并将其提交给控制器操作进行处理,以包含所有模型属性,这可能吗?
【问题讨论】:
标签: jquery asp.net-mvc
使用声明的 FormCollection 创建您的控制器动作。然后只需调用 UpdateModel,它将您的表单属性映射到您的对象。
public ActionResult MyAction(FormCollection form)
{
MyDomainObject a = //possibly get from repository
try
{
UpdateModel(a);
...
你的观点
<form id='my-form' action='post' method='/MyController/MyAction'>
//form elements
</form>
这里有一些 javascript。
$(document).ready(function()
{
var f = $('my-form');
var action = f.attr('action');
var serializedForm = f.serialize();
$.post
(
action,
serializedForm,
function()
{
//anything after the form submit
}
);
}
【讨论】:
FormCollection - 这也可以是MVC 模型或视图模型,尽管我在执行此操作时使用了.serializeArray() 而不是.serialize()。还使用了$.post(method, serializedForm, function() {} );,而不是此处显示的action, serializedForm。
如果您想将自己的复杂模型从 jQuery 直接传递到控制器方法中,请查看this question。
【讨论】:
您的意思是要连同表单中的信息一起发送附加信息?
如果是这样,我会动态创建<input type="hidden"> 元素并在提交之前将它们附加到表单中。
【讨论】: