Nat*_*oop 8 ajax asp.net-mvc-3
我注意到这样做会@Url.Action("myAction", new { param1 = 123, param2 = 456})为我提供无效的URL Home/myAction?param1=123&param2=456.
我正在尝试做
$("#myAjaxDiv").load(url);
Run Code Online (Sandbox Code Playgroud)
但只是param1在动作方法中填充.
当我删除它&并使它成功&然后它工作,但做一个字符串替换是超级hacky.
url = url.replace("&", "&");
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?
编辑:每个请求我包括我的一些示例应用程序.(你可以创建一个新的MVC应用程序,只需快速添加这些应用程序并亲自查看)
控制器:
public ActionResult AjaxTest(int? year, int? month)
{
ViewBag.Message = string.Format("Year: {0}, Month: {1}", year.HasValue ? year.ToString() : "no year", month.HasValue ? month.ToString() : "no month");
return PartialView("AjaxTest");
}
Run Code Online (Sandbox Code Playgroud)
AjaxTest查看:
@ViewBag.Message
Run Code Online (Sandbox Code Playgroud)
索引视图:
<script>
$(function () {
var url="";
$("#noParams").click(function () {
url = "Home/AjaxTest";
$("#ajaxy").load(url)
$("#url").text(url);
});
$("#yearParam").click(function () {
url = "Home/AjaxTest?year=2012";
$("#ajaxy").load(url)
$("#url").text(url);
});
$("#yearAndMonthParam").click(function () {
url = "Home/AjaxTest?year=2012&month=10";
$("#ajaxy").load(url)
$("#url").text(url);
});
$("#generated").click(function () {
url = "@(Url.Action("AjaxTest", new { year=2012, month=10}))";
$("#ajaxy").load(url);
$("#url").text(url);
});
});
</script>
<a id="noParams" href="#">No Params</a> <br />
<a id="yearParam" href="#">Year Param</a> <br />
<a id="yearAndMonthParam" href="#">Year and Month Param</a> <br />
<a id="generated" href="#">Generated</a> <br />
<div id="ajaxy">
</div>
<div>
URL: <span id="url"></span>
</div>
Run Code Online (Sandbox Code Playgroud)
nem*_*esv 14
默认情况下,IHtmlString使用@块发出的每个内容(不是)都由Razor自动进行HTML编码(请参阅此Razor介绍文章 Html编码部分)
该Url.Action回报率只是一个普通的string所以这就是为什么在&被编码.
使用Html.Raw,如果你不希望encodeing:
url = "@(Html.Raw(Url.Action("AjaxTest", new { year=2012, month=10})))";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20621 次 |
| 最近记录: |