剃刀 – 为什么Html.Raw在ASP.NET MVC 4中的锚标签中转移&符号?

剃刀 – 为什么Html.Raw在ASP.NET MVC 4中的锚标签中转移&符号?,第1张

概述我有一个URL,我想在一个锚标签中呈现在剃刀视图中.我会认为Html.Raw将是要走的路: @{ string test = "http://someurl.com/someimage.png?a=1234&b=5678";}<div> <a href="@Html.Raw(test)">Test</a></div> 但这不行. &符号被编码,HTML被呈现为: <div>


我有一个URL,我想在一个锚标签中呈现在剃刀视图中.我会认为HTML.Raw将是要走的路:
@{    string test = "http://someurl.com/someimage.png?a=1234&b=5678";}<div>    <a href="@HTML.Raw(test)">Test</a></div>

但这不行. &符号被编码,HTML被呈现为:

<div>    <a href="http://someurl.com/someimage.png?a=1234&amp;b=5678">Test</a></div>

奇怪的是,如果我在锚标签之外执行HTML.Raw调用,那么HTML输出是按预期的:

<div>    @HTML.Raw(test)<div>

呈现为:

<div>    http://someurl.com/someimage.png?a=1234&b=5678</div>

任何人都可以解释为什么会这样吗?

编辑:

尝试了一些其他的事情,发现以下工作如预期:

<div data-url="@HTML.Raw(test)"></div>

输出:

<div data-url="http://someurl.com/someimage.png?a=1234&b=5678"></div>

为了添加更多的上下文,我的目标并不是在锚标签中使用URL,因为hrefs可以被HTML编码,但仍然可以工作(我只是使用锚标签的情况作为例子).相反,我希望使用< object> < ParaM> Flash对象的值标签. Flash对象无法正确识别HTML编码的URL,但无法正确输出原始网址.

我很茫然.时间打破MVC源代码我猜…

解决方法 这是正在发生的,因为有些东西在管道中(我猜想剃刀,但我需要查找)属性编码所有…属性值.这不应影响浏览器到达您所需的位置.

您可以使用@ HTML.Actionlink(text,action,routeAttributes)重载来测试.

@HTML.Actionlink("Test","Index",new { tony = "1",raul = 2 })

输出

<a href="/?tony=1&amp;raul=2">Test</a>

关于你的编辑,你只需要使整个< param>部分原始价值.

@{    var test = "<param src=\"http://someurl.com/someimage.png?a=1234&b=5678\">";}<div>    <object>    @HTML.Raw(test)    </object></div>
总结

以上是内存溢出为你收集整理的剃刀 – 为什么Html.Raw在ASP.NET MVC 4中的锚标签中转移&符号?全部内容,希望文章能够帮你解决剃刀 – 为什么Html.Raw在ASP.NET MVC 4中的锚标签中转移&符号?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1101670.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存