asp.net-mvc-4 – @ Html.Raw坚持编码引号
|
MVC4剃刀视图.鉴于字符串background Image设置如下: backgroundImage = string.Format("background: url('{0}') top left no-repeat;",project.MainImage);
为什么这样呢 <div class="spotlight slide teaser-text" id="@slideId" style="@Html.Raw(backgroundImage)"> 生产 <div class="spotlight slide teaser-text" id="spotlight-0" style="background: url('/media/215/spotlight01.jpg') top left no-repeat;"> Html.Raw,新的MvcHtmlString和MvcHtmlString.Create表现得同样如此. 我希望它能产生 <div class="spotlight slide teaser-text" id="spotlight-0" style="background: url('/media/215/spotlight01.jpg') top left no-repeat;">
(注意引号). 解决方法我看了一下包含这个标记的剃刀模板的编译DLL.据我所知,问题是这个.Html.Raw将字符串转换为HtmlString. HttpUtility.HtmlEncode将IHtmlString实例与普通字符串区别对待,因为它不应用Html编码. 当在属性的上下文中给出以编程方式定义的字符串时,将进行调用 this.WriteAttribute(...) 使用适合生成属性的数据.部分数据是通过调用Html.Raw生成的HtmlString.另一部分是一个标志,表示该值不是文字. 由于not-literal标志状态,WriteAttribute方法最终调用HtmlEncode.但它不是在HtmlString上调用它,而是在该对象的字符串值上调用它.因此,您最终会在输出中使用HTML编码值. 在属性的上下文之外,进行调用 this.Write(...) 这不会遇到同样的问题.所以这对我来说似乎是一个错误(至少如果我已经准确地追踪了它). (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 什么OverrideAuthenticationAttribute是为什么?
- asp.net – 首先使用数据库向aspnetusers添加列
- ASP.NET Core 2.0 Razor vs Angular/React/etc.
- asp.net – .NET Application_BeginRequest – 如何获取用户
- 如何使用ASP.NET获取访问者位置(国家,州和城市)
- asp.net – ASP .Net文件上载超出最大请求长度错误
- asp.net-mvc – 如何在我的MVC应用程序有机会处理之前如何阻
- .net – 具有实体框架的存储库模式
- ASP.NET网站攻击:如何回应?
- asp.net – 防止VB.NET中的属性序列化
- asp.net-mvc – 以表格形式上传图片并在MVC 4上显
- ASP.net移动应用程序开发
- asp.net – 从wsdl生成webservice
- asp.net – 是否可以解密和查看ViewState值?
- asp.net下Repeater使用 AspNetPager分页控件
- asp.net-mvc – 存储库与DAL中的服务模式:EF和D
- asp.net – SignalR并不总是准备好后start().don
- asp.net-mvc – MVC路由错误:约束条目’长度’
- nuget-package – MvcScaffolding是否通过命令行
- asp.net-mvc – OnActionExecuting(FilterExecut
