我有一个非常奇怪的问题。我写了一个HtmlHelper..。
public static class MaterResourceLocationHelper
{
public static HtmlString GetMasterLocation(this HtmlHelper htmlHelper)
{
return new
HtmlString(ConfigurationManager
.AppSettings["MasterResourceLocation"]);
}
}当我将以下内容放在MVC2视图上时...
<%= Html.GetMasterLocation() %>在我得到的视图源代码中...
http://localhost/esd.myapp.com/但是,只要我尝试在这样的上下文中使用它...
<link href='<%= Html.GetMasterLocation() %>
/Css/jquery-ui-1.8.2.custom.css'
rel="stylesheet" type="text/css" />我在视图源码中得到了这个...
<link
href="../../Views/Shared/%3C%25=%20Html.GetMasterLocation()%20%25%3E%20/Css/jquery-ui-1.8.2.custom.css"
rel="stylesheet" type="text/css" />我真的很困惑为什么会发生这种情况?
发布于 2012-03-30 21:49:26
ASP视图引擎有一些有趣的规则,这些标签何时被计算,何时不被计算。试试这个:
<link href='<%= Html.GetMasterLocation() + "/Css/jquery-ui-1.8.2.custom.css"%>'
rel="stylesheet" type="text/css" />似乎只有当<%= %>标记表示整个HTML属性时,才会对其进行计算。否则,引擎只是从字面上处理它。您在这里看到的不是结果的HTML编码,而是引号之间的文字值的URL编码。
https://stackoverflow.com/questions/9942564
复制相似问题