Получение строго типизированной модели от MVC3 Helper - PullRequest
1 голос
/ 07 декабря 2011

Я нашел свойство моего помощника, которое, я думаю, даст мне доступ к свойствам моей модели, но я надеялся получить экземпляр самой модели. У меня есть представление со строго типизированной моделью. Одним из свойств модели является коллекция других моделей (TestModel). Я хотел бы представить каждый из элементов в коллекции стандартным способом. Итак, мой код вида будет выглядеть примерно так:

@foreach(var testModel in @Model.Items){
    @Html.DisplayViewerFor(@testModel)
}

Мой помощник выглядит примерно так.

public static MvcHtmlString DisplayViewerFor(this HtmlHelper<TestModel> helper, Expression<Func<TestModel>> expression, bool rightAligned = true) {
        var modelData = helper.ViewData;
        var prop = modelData[""];
        var outterDiv = new TagBuilder("div");
        outterDiv.AddCssClass(rightAligned ? "item-display-right" : "item-display");

        //Create other markup using modelData here
        //Would prefer to use an instance of TestModel


        return new MvcHtmlString(outterDiv.ToString(TagRenderMode.EndTag));
    }

1 Ответ

1 голос
/ 07 декабря 2011

Звучит так, будто вы хотите получить значение, а не выражение.

Расширьте неуниверсальный класс HtmlHelper и возьмите необработанный экземпляр TestModel в качестве параметра.

Вам нужно только дерево выражений, если вы хотите узнать имя свойства.

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