gpt4 book ai didi

asp.net-mvc - 将复杂对象从 View 传递到 Controller

转载 作者:行者123 更新时间:2023-12-02 04:50:14 26 4
gpt4 key购买 nike

我正在使用 BeginForm() 的重载 10,其中的参数是:

  1. 字符串 Action 名称
  2. 字符串 Controller 名称
  3. object routeValues
  4. FormMethod 方法

我把我的模型放在第三个参数中,它是一个先前从 Controller 传递到 View 的复杂对象。但是,我收到一个编译错误:

CS1928: 'System.Web.Mvc.HtmlHelper<MvcApplication5.Models.xxxModel>'does not 
contain a definition for 'BeginForm' and the best extension method overload
'System.Web.Mvc.Html.FormExtensions.BeginForm(System.Web.Mvc.HtmlHelper,
string, string, object, System.Web.Mvc.FormMethod)' has some invalid
arguments

有没有办法将复杂对象从 View 发布到 Controller ?


编辑:

我的模型是:

public xxxModel
{
public string Name { get; set; }
public Adddress Address { get; set; }
}

我的观点是:

@model namespace.xxxModel
...
@using (Html.BeginForm("actionName", "controller", Model, FormMethod.Post) { .....

最佳答案

您不能将模型类放在 RouteValues 参数中。

查看MSDN help
如帮助中所述:

路线值(value)
类型:System.Object
包含路由参数的对象。通过检查对象的属性通过反射检索参数。此对象通常使用对象初始化语法创建

然后用这个

new { MyProp1 = Model.Prop1, MyProp2 = Model.Prop2, MyProp3 = Model.Prop3, ... }

否则在表单中使用隐藏字段。 ModelBinder 将在发布期间将它们映射到您的模型

关于asp.net-mvc - 将复杂对象从 View 传递到 Controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18984129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com