Другой подход, который противоречит принципам MVC, состоит в том, чтобы использовать ViewModel и отвечать на init-событие вашей страницы, чтобы установить желаемый css / javascript (т.е. myViewModel.Css.Add (". Css") и в вашемhead рендерит содержимое css-коллекции на вашей модели представления.
Для этого вы создаете базовый класс модели представления, от которого наследуются все ваши другие модели, ala
public class BaseViewModel
{
public string Css { get; set; }
}
В вашем master-На странице вы установите его для использования этой модели представления
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<BaseViewModel>" %>
, а в вашей головной части вы можете записать значение свойства Css
<head runat="server">
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
<%= Model.Css %>
</head>
Теперь в вашем частичном представлении вам нужноесть этот код, который довольно некрасив в MVC
<script runat="server">
protected override void OnInit(EventArgs e)
{
Model.Css = "hej";
base.OnInit(e);
}
</script>