ASP .NET MVC 3: как использовать универсальную модель представления в моем EditorTemplate - PullRequest
0 голосов
/ 10 июля 2011

У меня есть модель.

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

И у меня есть View.

@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")
    }
}

И я хочу написать Submodel.cshtml в EditorTemplates, но я не могу написать:1007 *

@model SubModel<T>

Что мне делать, кроме создания 3 видов для каждого типа?

1 Ответ

0 голосов
/ 10 июля 2011

Шаблоны нельзя строго набирать открытыми дженериками.

Чтобы вы могли использовать dynamic:

@model dynamic

или object:

@model object

но в обоих случаях вам придется написать некрасиво ifs, чтобы определить правильный тип. По этой причине я бы порекомендовал вам написать разные шаблоны для каждого типа и позволить фреймворку выбрать правильный шаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...