强迫剃刀不要逃脱网址

lam*_*ont 7 asp.net-mvc razor asp.net-mvc-3

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

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

问题是,url在发出的脚本中出现转义(&==&)

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

所以MVC对请求说扼要说没有提供bar参数.

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

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

有什么想法吗?

cou*_*ben 14

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

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