我的<head>
<% if(Context.User.IsInRole("Reseller")) {%>
<link href="<%: themelocation %>" rel="stylesheet" type="text/css" />
<%} else {%>
<link href="<%= Url.Content("~/Content/custom-theme/jquery-ui-1.8.5.custom.css") %>" rel="stylesheet" type="text/css" />
<%} %>
问题在于主题定位,它在这段代码之上声明 - 就像这样:
<%
var reseller = new Reseller();
var storeSettings = new StoreSettings();
var themelocation = "";
if (Context.User.Identity.IsAuthenticated)
{
var resellerRepository = new ResellerRepository();
reseller = resellerRepository.GetResellerByUsername(Context.User.Identity.Name);
var storeSettingsRepository = new StoreSettingsRepository();
storeSettings = storeSettingsRepository.GetStoreSettings((int) reseller.StoreSettingsID);
themelocation = storeSettings.Theme.StylesheetLocation;
}
%>
设置断点显示主题位置包含我需要的字符串,但是当页面运行时 - 它会生成400 - 错误请求错误,并且firebug中的网络选项卡显示它正在查找:
http://localhost:50982/%3C%:%20themelocation%20%%3E
我在哪里错了?为什么它使用变量名,而不是它包含的内容?
我正在使用ASP.NET MVC2,所有这些代码都位于我的母版页上。
答案 0 :(得分:0)
我做了Artem K.建议并从中删除了runat ='server'并正确执行了代码。