使用EditorFor作为模型的基类

时间:2018-01-04 16:06:41

标签: c# asp.net asp.net-mvc-4 razor

我的应用程序中有一个更难的基础/派生类结构,但为了更容易,让我们假设一个简单的模型示例:

public class Base
{
   public string BaseProp { get; set; }
}

public class Derived : Base
{
   public string DerivedProp { get; set; }
}

我想为这些类制作EditorTemplates,Base.cshtml很简单:

@model Base

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

但是在Derived.cshtml中,我认为我可以在基类上调用EditorFor,如下所示:

@model Derived

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

//This throws an exception in a browser
@Html.EditorFor(model => (Base)model)

//This is without an exception, 
//but nothing happens, there are no fields of base class in the page
@{
    var baseObj = (Base)Model;
    @Html.EditorFor(_ => baseObj)
}

有没有办法,如何正确调用基类的EditorTemplate?我发现只有this 6年的主题,但它提供了一个使用Partial in custom helper而不是EditorFor的解决方法,这仍然不是一个理想的解决方案。在较新版本的ASP中,我们是否有更好的直接方式?

0 个答案:

没有答案