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 に答える