我有我想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