0

我有一个模型,其类型objectmyobject

public class myModel
{
    public long id {get;set;}
    public object myobject {get;set;}
}

在我的视图中,我使用模板EditorFor来编辑:myobject

@model myModel
// form (code omitted)
@Html.EditorFor(model => model.myobject)

<button type="submit">Save</button>

这是模板:

@model myObject

@Html.EditorFor(model => model.myname)

如何获取myModel.myobject控制器中的值?我尝试投射,但出现此错误:

无法将“System.Object”类型的对象转换为“MyProject.Models.myobject”类型。

4

1 回答 1

1

模型中的属性是类型object

public object myobject { get; set; }

您的 EditorTemplate 是类型myObject- 不是类型object

@model myObject <-- This little thing is responsible telling MVC what editor template to use with which type.

@Html.EditorFor(model => model.myname)

这就是为什么你没有得到你正在寻找的实现。

作为替代方案,您可以使用命名的EditorTemplate,而不是让 MVC 根据类型推断您想要的模板。

于 2012-07-13T15:59:26.380 回答