Как создать страницу со строго типизированным представлением, используя ASP.NET MVC VB.NET XML Literals View Engine? - PullRequest
0 голосов
/ 28 апреля 2009

Я использую ASP.NET MVC VB.NET XML Literals View Engine, созданный Дмитрием Робсманом и описанный в его блоге в этом посте.

http://blogs.msdn.com/dmitryr/archive/2008/12/29/asp-net-mvc-view-engine-using-vb-net-xml-literals.aspx

Я хотел бы создать строго типизированные страницы представления, используя этот механизм представления, но, похоже, он не содержит требуемого универсального типа VbView (Of TModel), с помощью которого я бы создал такой класс представления.

Конечный результат должен выглядеть примерно так:

Namespace Views.Client
    Public Class Details(Of Models.Client)
        Inherits SiteMaster

        Public Overrides Function RenderContent() As XElement
            Return _
            <fieldset>
                <legend>Fields</legend>
                <p>
                    FirstName:
                    <%= Xhtml.Encode(Model.FirstName) %>
                </p>
                <p>
                    MiddleName:
                    <%= Xhtml.Encode(Model.MiddleName) %>
                </p>
                <p>
                    LastName:
                    <%= Xhtml.Encode(Model.LastName) %>
                </p>
            <fieldset>
        End Function

    End Class
End Namespace

Как только появится класс VbView (Of TModel), который наследуется от класса Дмитрия VbView, мне понадобится помощь, чтобы выяснить, как подключить его, чтобы он работал со стандартными контроллерами MVC, которые вызывают представление таким образом.

Function Details(ByVal id As Integer) As ActionResult
    Dim c = SomeGetClientFunction(id)
    Return View(c)
End Function

1 Ответ

0 голосов
/ 30 апреля 2009

Я скачал исходный код ASP.NET MVC C # и смог выяснить, как создать класс VbView (Of TModel), отразив часть этой структуры. Я создал проект на CodePlex, который содержит этот новый класс и пару других изменений, улучшающих то, что сделал Дмитрий. http://vbmvc.codeplex.com

...