如何解决MVC3:如何发布包含部分视图的表单?
| 工具:MVC3,jQuery非侵入式验证,Razor,VS 2010 我正在开发一个MVC2项目,该项目使用户可以请求服务。我已将所有表单共有的信息放在局部视图中,这些视图强烈地键入了自己的模型。每个局部视图都有其自己的控制器。部分视图显示在主容器页面中。我具有毫不干扰的jQuery数据验证,可处理呈现页面上的所有数据。 问题:编写将所有页面数据中继到服务器的Post的最佳方法是什么,如何将部分视图与其各自的模型相关联?局部视图的控制器是否可以处理自己的数据存储琐事?有什么好的例子吗?还是,这种体系结构存在缺陷,我应该重新考虑吗? 提前致谢, 阿诺德解决方法
不,一点也没有,听起来很好分解并且易于测试。首先,请确保使用HTML中正确的操作,方法等正确设置表单。因此,要发布整个页面,您可以执行以下操作:
var savePage = function () {
$(\'form\').each(function (formIndex,formElement) {
var f = $(formElement);
$.post(f.attr(\'action\'),f.serialize(),successfulFormPost);
});
};
var successfulFormPost = function (data) { ... };
现在,如果您的MVC视图如下所示:
(请注意name属性的命名约定)。然后,您可以使该窗体的控制器采用与视图的@Model相匹配的强类型参数:
public class SomeModel {
public int Id { get; set; }
public string Description { get; set; }
}
public class SomeController : Controller {
[HttpPost]
public ActionResult SomeAction(SomeModel someModel) {
// use someModel.Id,someModel.Description here
}
}
我更手动地处理了HTML,但是我只是证明了如何将HTML POST与控制器动作绑定和链接。我将由您自己决定,使用Html.TextBox类型语法进行不干扰的验证。只需记住根据默认绑定程序的工作方式来设置输入字段的name属性:
http://www.asp.net/mvc
这是所有这些基础知识的重要来源。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。