强迫剃刀不要逃脱网址

时间:2011-10-20 18:14:39

标签: asp.net-mvc asp.net-mvc-3 razor

Razor的自动逃脱让我感到困惑。我正在构建一个url来提供给jquery的$ .load方法:

<script>
$("#baz").load('@Url.Action("Method", new { foo=Model.Foo, bar=Model.Bar })');
<script>

问题是,网址会在发出的脚本中出现(&amp; ==&amp;)

<script>
$("#baz").load('Method?foo=Foo&amp;bar=Bar');
<script>

因此,MVC对请求说扼要说明没有提供bar参数。

我已经尝试在@ Html.Raw中包含调用但仍然似乎逃脱了网址。回到星球上的aspx,我只是做&lt;%=而不是&lt;%:但显然这里不好:)。我也尝试将参数放在$ .load的数据对象中,但这似乎强制发布一个帖子,而不是一个get(我想要一个get)。

这是我可以用路由修复的东西,但是这个项目还没有 - 仍然可以在不弄乱路由的情况下降低功能。另一方面,我需要能够最终路由这个URL,所以我不想只是对查询字符串进行硬编码。

有什么想法吗?

1 个答案:

答案 0 :(得分:14)

我刚刚运行了一个测试,并且在我的测试中使用Html.Raw编码了&符号,如下所示:

@Html.Raw(Url.Action("Method", new { foo = Model.Foo, bar = Model.Bar }))