gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 21:49:14 24 4
gpt4 key购买 nike

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

  1. 字符串操作名称
  2. 字符串 Controller 名称
  3. 对象路线值
  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) { .....

最佳答案

您不能将 Model 类放入 RouteValues 参数中。

看看MSDN help
正如帮助中所述:

路线值
类型: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/

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