Asp.net mvc ASP.NET MVC:CRUD区域中的冗余(强类型)视图
在我的MVC应用程序的CRUD区域中,我有许多看起来毫无意义的视图文件,例如:Asp.net mvc ASP.NET MVC:CRUD区域中的冗余(强类型)视图,asp.net-mvc,Asp.net Mvc,在我的MVC应用程序的CRUD区域中,我有许多看起来毫无意义的视图文件,例如: <%@ Page Title="" Language="C#" MasterPageFile="Some.Master" Inherits="System.Web.Mvc.ViewPage<SomeModel>" %> <asp:Content ID="ContentID" ContentPlaceHolderID="SomePlaceHolder" runat="server">
<%@ 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>
这当然是一件漂亮的衣服
是否可以在保留强类型的同时使用共享视图进行此操作?(例如,通过在控制器中指定泛型类型?如果非常常见,您可以将此代码放在主文件(
Html.DisplayForModel()
)中,这样就不需要在每个视图中重写它。只有对于不需要这种常见行为的视图,您可以覆盖它。您可以在/views/Shared/中使用单个display.aspx,而不是为每个CRUD控制器提供一个显示视图。视图引擎搜索/Views/{yourcontroller},然后搜索/Views/Shared/,查找它要查找的内容
如果您的所有视图都是空的,那么就不需要强键入。DisplayForModel()知道如何解决这个问题
有关此技术的更多信息:
但我认为我仍然剩下强类型视图存根。如何摆脱这些?您可以创建一个共享视图,控制器操作将
返回该视图(“~/Views/shared/SomeSharedView.aspx”,someModel)但是我想你是不是忘了打字了?也许这并不重要…?只有在使用特定视图和特定视图模型时,强类型才有意义。如果您具有诸如Html.EditorForModel
和Html.DisplayForModel
之类的通用功能,则可以轻松地将其放入母版页中。