Лучший вариант для редактирования файла CSS на лету под MVC2 - PullRequest
0 голосов
/ 15 ноября 2010

У меня есть приложение, которое в админке есть такие опции как

Background image: [ File Upload ]
Top Illustration: [ File Upload ]

и в начале я хочу легко прикрепить эту информацию к CSS, может быть, просто так должно быть

.background {
    background: url(<%: Model.BackgroundUrl %>);
    ...
}

У меня в данный момент есть Css-файлы unde ~/Content/Css

Должен ли я иметь представление с этим и изменить тип содержимого, чтобы я мог использовать часть модели?

Какие еще методы доступны или эта ситуация?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2010

Я закончил с новым видом и настроил все как:

в шаблоне Master

<link href="<%= Url.Content(
                      String.Format("~/{0}/Css/CustomCss.aspx", 
                      ViewData["CalendarUrl"])) %>" 
      rel="stylesheet" type="text/css" />

в маршрутах

routes.MapRoute(
    "CustomCss", // Route name
    "{calurl}/Css/CustomCss.aspx", // URL with parameters
    new { calurl = "none", controller = "Content", action = "CustomCss", id = UrlParameter.Optional } // Parameter defaults
);

в контроллере: Содержимое , Действие: CustomCss

// GET: /Css/CustomCss
public ActionResult CustomCss(string calurl)
{
    return View();
}

в моем виде (помещено в Shared ):

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" 
         ContentType="text/css" %>
<%
    string company_logo = ViewData["CompanyLogo"] as string;
    string company_bkg = ViewData["CompanyBackground"] as string;
%>
.background {
<%if (!String.IsNullOrWhiteSpace(company_bkg))
  { %>background-image:url('<%: company_bkg %>');<%} %>
}
#header-content{
<%if (!String.IsNullOrWhiteSpace(company_logo ))
  { %>background-image:url('<%: company_logo %>');<%} %>
}
0 голосов
/ 15 ноября 2010

Вы не можете использовать модель в статическом файле CSS. Если вы хотите добиться этого, вам нужно будет сгенерировать его динамически, используя действие контроллера. В качестве альтернативы вы можете напрямую использовать тег img:

<img src="<%: Model.BackgroundUrl %>" alt="" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...