如何正确创建带有“Url.Action”的查询字符串的网址,以便它在Firefox中工作
How to create url with query string with 'Url.Action' correctly so it works in Firefox
在 razor 视图中script
像这样创建带有查询字符串的 url,当单击某个元素时window.location
设置为带有查询字符串的这个 URL。
<script type="text/javascript">
// ...
var url = "@Url.Action("action", "controller",
new
{
a = model.a,
b = model.b,
c = model.c
}, null)";
$("#something").on("click", function () {
window.location = url;
});
// ...
</script>
这在Internet Explorer 11中工作正常,请求的URL如下所示:
http://localhost/App/Controller/Action?a=True&b=123&c=False
但是在 Firefox 47.0a2 和 Opera 35.0 中,请求的 url 如下所示:
http://localhost/App/Controller/Action?a=True&b=123&c=False
请注意查询字符串中每个&
后amp;
。这amp;
会导致模型绑定在 Firefox 和 Opera 中失败(模型在 IE 11 中绑定时没有错误)。
为什么Firefox和Opera的行为与IE不同?
错误如下所示:
参数字典包含参数"a"的空条目 "控制器"中方法"方法的不可为空类型"类型"。可选参数必须是引用 类型、可为 null 的类型,或声明为可选参数。 参数名称:参数
MVC 将编码@Url.Action
。您可以简单地告诉它不要使用@Html.Raw(Url.Action())
进行编码
相关文章:
- 为什么这在IE中的工作方式与在Firefox中不同
- JS可以在Chrome中工作,但不能在Firefox中工作
- Facebook登录按钮没有'不能在Firefox上工作
- JS在firefox中无法正常工作
- firefox插件:退出不工作的应用程序观察器
- :focus:一起活跃,不在firefox上工作
- 加载Soundcloud嵌入式播放器OnClick在FireFox中不工作
- javascript()onclick隐藏元素-dos'我不在firefox工作
- 异步加载的SVG过滤器feColorMatrix在Chrome中工作,而不是在Safari或Firefox中
- Iframe加载调整大小在Chrome中工作,但不能在IE或Firefox中工作
- 按钮处于活动状态,焦点无法在Mac FireFox上工作
- HTML5 Canvas undo是'在IE或Firefox中无法正常工作
- javascript代码,用于删除firefox中的空白,但在IE和chrome中无法正常工作
- JavaScript 在 Chrome 中工作,而不是在 Firefox 中
- jQuery代码在Firefox中工作,但在IE中失败
- Javascript加载功能只能在一半的时间内工作(Firefox)
- jQuery点击不工作FireFox -可能是event.preventdefault
- JQUERY .load不能与窗口一起工作.firefox中的位置
- Javascript菜单不工作Firefox
- Jquery只在我重新加载页面时工作-Firefox