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&bar=Bar');
<script>
因此,MVC对请求说扼要说明没有提供bar参数。
我已经尝试在@ Html.Raw中包含调用但仍然似乎逃脱了网址。回到星球上的aspx,我只是做&lt;%=而不是&lt;%:但显然这里不好:)。我也尝试将参数放在$ .load的数据对象中,但这似乎强制发布一个帖子,而不是一个get(我想要一个get)。
这是我可以用路由修复的东西,但是这个项目还没有 - 仍然可以在不弄乱路由的情况下降低功能。另一方面,我需要能够最终路由这个URL,所以我不想只是对查询字符串进行硬编码。
有什么想法吗?
答案 0 :(得分:14)
我刚刚运行了一个测试,并且在我的测试中使用Html.Raw编码了&符号,如下所示:
@Html.Raw(Url.Action("Method", new { foo = Model.Foo, bar = Model.Bar }))