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 次  |  
        
|   最近记录:  |