我有一个模特。
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个视图外,我该怎么办?
答案 0 :(得分:0)
模板不能是强类型的开放式泛型。
所以你可以使用dynamic
:
@model dynamic
或object
:
@model object
但在这两种情况下,你都必须在里面写丑陋的ifs
才能确定正确的类型。出于这个原因,我建议你为每种类型编写不同的模板,让框架选择正确的模板。