常見的方法(如Jamiec指出的)是包含在你的主模板的頭部部分中的ContentPlaceHolder。
但是,如果你希望你的控制器來決定什麼CSS渲染(也許是主題化或類似的東西),你還可以創建一個HTML幫助做到這一點。一個快速和骯髒的實現來說明:
母版頁:
<head runat="server">
<%= Html.IncludeStyles() %>
</head>
操作方法:
public ActionResult SomeAction()
{
ViewData["StyleSheets"] = new[] { "StylesheetA", "StylesheetB" };
return View();
}
HTML助手:
public static class HtmlHelperExtensions
{
public static string IncludeStyles(this HtmlHelper helper)
{
var styles = helper.ViewData["StyleSheets"] as IEnumerable<string>;
var sb = new StringBuilder();
if (styles != null)
{
foreach (var style in styles)
{
sb.AppendFormat("<link rel=\"stylesheet\" href=\"/content/" + style + ".css\" />\n");
}
}
return sb.ToString();
}
}
喜。是的,這幾乎是我所做的,但是,在我的情況下,SomeAction是在頭部分渲染後執行的局部視圖。這意味着我無法在其中添加腳本或樣式。我想不出任何解決方案並不會強迫我讓主視圖知道我的所有部分視圖都使用的腳本。你有解決這個問題的辦法嗎? – Max 2010-07-26 16:40:34
鏈接到您的用戶名,以便您瞭解我以前的評論。 – Max 2010-07-26 16:41:39