Old*_*zer 2 asp.net-mvc asp.net-mvc-4
我正在使用BeginForm()的重载10,其中参数为:
我将模型(这是一个较早的从控制器传递到视图的复杂对象)放在第三个参数中。但是,出现编译错误:
CS1928:“ System.Web.Mvc.HtmlHelper”不包含“ BeginForm”的定义,最佳扩展方法重载“ System.Web.Mvc.Html.FormExtensions.BeginForm(System.Web.Mvc.HtmlHelper,字符串,字符串,对象,System.Web.Mvc.FormMethod)'包含一些无效的参数
有没有一种方法可以将复杂的对象从视图发布到控制器?
Edits:
我的模型是:
public xxxModel
{
public string Name { get; set; }
public Adddress Address { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的看法是:
@model namespace.xxxModel
...
@using (Html.BeginForm("actionName", "controller", Model, FormMethod.Post) { .....
Run Code Online (Sandbox Code Playgroud)
您不能将Model类放入RouteValues参数中。
查看MSDN帮助
如帮助中所述:
routeValues
类型:System.Object
包含路由参数的对象。通过检查对象的属性,通过反射来获取参数。通常使用对象初始化程序语法创建此对象。
然后用这个
new { MyProp1 = Model.Prop1, MyProp2 = Model.Prop2, MyProp3 = Model.Prop3, ... }
Run Code Online (Sandbox Code Playgroud)
否则,请在表单内使用隐藏字段。在发布过程中,ModelBinder会将它们映射到您的模型
| 归档时间: |
|
| 查看次数: |
7322 次 |
| 最近记录: |