ASP .NET MVC 3:如何在EditorTemplate中使用通用视图模型

时间:2011-07-10 06:41:22

标签: asp.net-mvc-3 editorfor

我有一个模特。

public class MyModel
{
    public SubModel<float> prop1 { get; set; }
    public SubModel<int?> prop2 { get; set; }
    public SubModel<string> prop3 { get; set; }
}

我有查看。

@model MyModel

@{ 

    using (Html.BeginForm("Edited", "My", FormMethod.Post))
    {
        @Html.EditorFor(m => m.prop1,"SubModel")
        @Html.EditorFor(m => m.prop2,"SubModel")
        @Html.EditorFor(m => m.prop3,"SubModel")
    }
}

我想在EditorTemplates中编写Submodel.cshtml,但我不能写:

@model SubModel<T>

除了为每种类型创建3个视图外,我该怎么办?

1 个答案:

答案 0 :(得分:0)

模板不能是强类型的开放式泛型。

所以你可以使用dynamic

@model dynamic

object

@model object

但在这两种情况下,你都必须在里面写丑陋的ifs才能确定正确的类型。出于这个原因,我建议你为每种类型编写不同的模板,让框架选择正确的模板。