代码之家  ›  专栏  ›  技术社区  ›  UpTheCreek

ASP.NET MVC:CRUD区域中的冗余(强类型)视图

  •  0
  • UpTheCreek  · 技术社区  · 14 年前

    在我的MVC应用程序的crud区域,我有许多看似毫无意义的视图文件,例如:

    <%@ Page Title="" Language="C#" MasterPageFile="Some.Master" Inherits="System.Web.Mvc.ViewPage<SomeModel>" %>
    
    <asp:Content ID="ContentID" ContentPlaceHolderID="SomePlaceHolder" runat="server">
       <%= Html.DisplayForModel() %>
    </asp:Content>
    

    这当然是很难穿的衣服。

    是否可以在保留强类型的同时使用共享视图? (例如,通过在控制器中指定通用类型?)

    2 回复  |  直到 14 年前
        1
  •  1
  •   John Farrell    14 年前

    您可以在/views/shared/中有一个display.aspx,而不是为每个CRUD控制器都有一个显示视图。视图引擎搜索/views/yourcontroller,然后搜索/views/shared/以查找其所需的内容。

    如果您的所有视图都是<%=html.displayFormModel()%>,则不需要强输入。displayFormModel()知道如何解决这个问题。

    有关此技术的详细信息: http://haacked.com/archive/2009/08/04/default-templated-views.aspx

        2
  •  1
  •   Darin Dimitrov    14 年前

    如果很常见,可以将此代码放在主文件中( Html.DisplayForModel() )这样就不需要在每个视图中覆盖它。只有对于不需要这种常见行为的视图,您才可以覆盖它。