如何在模型中获取Object类型的值?

时间:2012-07-13 15:47:06

标签: c# asp.net-mvc object model casting

我有一个名为object myobject的项目的模型:

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”。

1 个答案:

答案 0 :(得分: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根据类型推断出您想要的模板。