gpt4 book ai didi

ajax - 使用 MVC3 @Url.Action 的 JQuery Load 无法正确传递参数

转载 作者:行者123 更新时间:2023-12-02 11:02:06 24 4
gpt4 key购买 nike

我注意到执行 @Url.Action("myAction", new { param1 = 123, param2 = 456}) 为我提供了无效的 URL Home/myAction?param1=123& ;param2=456

我正在尝试做

$("#myAjaxDiv").load(url);

但只有 param1 被填充到操作方法中。

当我删除 & 并将其设置为 & 时,它就可以工作,但是进行字符串替换非常麻烦。

url = url.replace("&", "&");

我在这里遗漏了什么吗?

编辑:根据请求,我包含了一些示例应用程序。 (您可以创建一个新的 MVC 应用程序,然后快速添加这些应用程序并亲自查看)

Controller :

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");
}

Ajax测试 View :

@ViewBag.Message

索引 View :

<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>

最佳答案

默认情况下,使用 @ block 发出的每个内容(不是 IHtmlString)都会自动由 Razor 进行 HTML 编码(请参阅此 Razor intro article Html 编码部分)

Url.Action 仅返回一个普通的字符串,这就是 & 被编码的原因。

如果您不需要编码,请使用Html.Raw:

url = "@(Html.Raw(Url.Action("AjaxTest", new { year=2012, month=10})))";

关于ajax - 使用 MVC3 @Url.Action 的 JQuery Load 无法正确传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12866144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com