Asp.net mvc 3 ASP.NETMVC母版页架构建议和动态CSS/JavaScript引用?

Asp.net mvc 3 ASP.NETMVC母版页架构建议和动态CSS/JavaScript引用?,asp.net-mvc-3,architecture,master-pages,Asp.net Mvc 3,Architecture,Master Pages,我正在进入ASP.NETMVC领域,需要一些关于体系结构的想法/建议。在我当前的ASP.NETWebForms应用程序中,我使用的是嵌套母版页方法。我有一个主站点主站点,它公开了站点的所有常见功能和布局元素。然后,我有一组其他母版页,这些母版页继承自主母版,并公开这些部分的特定功能。这些嵌套母版页的示例包括:用于模式弹出窗口的母版页和用于大多数站点的桌面类型布局 我的应用程序架构的一部分是CSS和JavaScript/JQuery可以动态插入到主控或继承的aspx页面中。我创建了一个UI程序集,

我正在进入ASP.NETMVC领域,需要一些关于体系结构的想法/建议。在我当前的ASP.NETWebForms应用程序中,我使用的是嵌套母版页方法。我有一个主站点主站点,它公开了站点的所有常见功能和布局元素。然后,我有一组其他母版页,这些母版页继承自主母版,并公开这些部分的特定功能。这些嵌套母版页的示例包括:用于模式弹出窗口的母版页和用于大多数站点的桌面类型布局

我的应用程序架构的一部分是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());
//
///这是css引用的类模型
/// 
公共类CSR引用
{
公共字符串Href{get;set;}
公共类型枚举类型{get;set;}
公共枚举类型枚举
{
文本CSS
}
}
//这是主母版中的集合
公共列表CSR引用
{
获得;设置;
}
///这是我们从另一个继承的页面或母版添加到它的方式
Master.CssReferences.AddRange(DefaultCssReferences());
我在我的主母版页中公开了一个公共属性,它是一个列表(UIReference指CSS或JavaScript引用类型)。通过这种方式,我可以从继承的主页面或实际的aspx页面向该集合添加任何其他JS或CSS引用


我的问题是,有没有其他人在ASP.Net MVC中做过类似的事情,或者有更好的方法来做呢?

我可能会通过让所有控制器都在其中的BaseController类(继承常规控制器类)来实现这一点,然后在其中您可以将CSS引用设置为ViewBag的属性

(关于ViewBag用法的帖子:)

这取决于您需要在哪里设置引用

另一方面,带有Razor的MVC3允许以类似于ASP.NET Web表单的方式嵌套布局

_layout.cshtml有一个RenderBody()函数


MyInnerLayout.cshtml将其布局设置为_Layout.cshtml,然后将其所有HTML呈现到_Layout.cshtml具有RenderBody()函数的位置

我在MVC 2中就是这样做的。我不确定是否有另一种MVC解决方案,除了我所描述的以外,我还没有找到其他解决方案。我会继续浏览并更新这篇文章。版面是否像母版页一样工作,或者你是否会应用版面来查看母版页?是的,版面的工作方式与母版页类似,内容周围的语法明显不同等。还可以查找与母版页中的contentPlaceHolder控件类似的部分。