[英]ASP.Net MVC Master Page architecture advice and dynamic CSS / JavaScript references?
我正在進入ASP.Net MVC領域,並且需要有關體系結構的一些想法/建議。 在當前的ASP.Net Web窗體應用程序中,我使用的是嵌套母版頁方法。 我有一個主站點主站點,它公開了該站點的所有常用功能和布局元素。 然后,我還有一組其他母版頁,它們從“母版”母版繼承這些部分的公開特定功能。 這些嵌套母版頁的示例為:模態彈出窗口的母版頁和大多數站點的桌面類型布局。
我的應用程序體系結構的一部分是,可以將CSS和JavaScript / JQuery的版本動態地插入到母版或繼承的aspx頁中。 我創建了一個UI程序集,用於構建引用。 這是該項目的一些代碼:
/// <summary>
/// This is the class model for a css reference
/// </summary>
public class CssReference
{
public string Href { get; set; }
public TypeEnum Type { get; set; }
public enum TypeEnum
{
TextCss
}
}
//This is the collection in the Main Master
public List<CssReference> CssReferences
{
get;set;
}
///this is how we would add to it from another inherited page or master
Master.CssReferences.AddRange(DefaultCssReferences());
我在主主頁上顯示了一個列表的公共屬性(UIReference引用了CSS或JavaScript引用類型)。 通過這種方式,可以從繼承的母版頁或實際的aspx頁中向該集合添加任何其他JS或CSS引用。
我的問題是,是否有人在ASP.Net MVC中做了與此類似的事情,還是有更好的方法呢?
我可能會通過擁有一個BaseController類來實現這一點,所有控制器都繼承了該類(繼承常規Controller類),然后在其中可以將CssReferences設置為ViewBag的屬性。
(有關ViewBag使用情況的信息: http ://davidhayden.com/blog/dave/archive/2011/01/19/ViewBagAspNetMvc3.aspx)
僅取決於您需要在哪里設置引用。
附帶說明一下 ,帶有Razor的MVC3允許以與ASP.NET Web窗體類似的方式嵌套布局。
_layout.cshtml具有RenderBody()函數
MyInnerLayout.cshtml將其Layout設置為_layout.cshtml,然后將其所有HTML呈現到_layout.cshtml具有RenderBody()函數的位置
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.