我有我想MVC3服务到客户端页面的网页的部分。而不是让他们在永恒之中保持静态。我有一些网站会在页面的某些部分重新产生标记,例如横幅,导航等。在一些网站中,我需要定制一些标记。所以我需要能够延长如果可能的话。HTML标记和ASP.NET MVC3
有人可以告诉我,如果MVC3是理想的解决方案吗?我正在考虑部分意见。你可以继承&扩展部分视图吗?
感谢
我有我想MVC3服务到客户端页面的网页的部分。而不是让他们在永恒之中保持静态。我有一些网站会在页面的某些部分重新产生标记,例如横幅,导航等。在一些网站中,我需要定制一些标记。所以我需要能够延长如果可能的话。HTML标记和ASP.NET MVC3
有人可以告诉我,如果MVC3是理想的解决方案吗?我正在考虑部分意见。你可以继承&扩展部分视图吗?
感谢
局部视图可以为您的需求来实现。例如,您可以按以下方式使用它们:
@model string[]
@if((bool)Model[0]) {
<span>I like it to be this way.</span>
} else {
<span>No, I like it to be that way.</span>
}
内部的视图,可以按如下方式调用这个局部视图:
@Html.Partial("myPartialView", new string[] { "true" })
你几乎可以通过任何局部视图Model
。
如果您打算在多个应用程序中使用这些部分视图,我鼓励您为这些部分视图创建Nuget包,并通过Nuget Package Manager将它们放到每个应用程序中。
横幅,导航,自定义面板等 - 所有这些都是随着时间的推移您可能想要添加,组合,删除或更新的组件。是的,部分意见可以轻松完成这项工作,但在我看来,继承并不是一种前进的方式。
您的部分视图应该基于视图模型。例如:OrderPanelViewModel,UserMenuViewModel,CustomPanelViewModel。每个局部视图现在都是一个组件,您可以根据需要添加,删除或修改这些功能。
如果要将横幅和用户菜单组合起来会发生什么?如果它们从相同的视图模型继承,它将无法工作,但如果它们有自己的视图模型,它将起作用。
例如:
public class MyCustomPaneViewModel{
public UserMenuViewModel UserMenu { get; set; }
public UserBannerViewModel UserBanner { get; set; }
}
您现在可以立足视图这个视图模型
@model YourDll.WebUI.Models.MyCustomPaneViewModel
@section main_content{
@Html.DisplayFor(model => model.UserMenu, "UserMenu")
@Html.DisplayFor(model => model.UserBanner, "UserBanner")
}
,所以我想你不能“继承”部分的看法? – River
@ user742276你想使用它们作为模板吗?如果是这样,你要找的是Layouts not Partials。 – tugberk
请问您可以通过使用Layout来说明您的意思吗? – River