0

我有一个模型。

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 个视图之外,我应该怎么做?

4

1 回答 1

0

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

所以你可以使用dynamic

@model dynamic

object

@model object

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

于 2011-07-10T09:48:54.110 回答