Ich habe festgestellt, dass @Url.Action("myAction", new { param1 = 123, param2 = 456})
mich mit einer ungültigen URL Home/myAction?param1=123&param2=456
verursacht.JQuery Load mit MVC3 @ Url.Action übergibt keine Parameter richtig
Ich versuche
$("#myAjaxDiv").load(url);
Aber nur param1
wird immer in der Aktionsmethode zu tun bevölkert.
Wenn ich die &
entfernen und es nur &
machen, dann funktioniert es, aber eine Zeichenfolge zu ersetzen, ist super hacky.
url = url.replace("&", "&");
Fehle ich hier etwas?
EDIT: Pro Anfrage schließe ich einige meiner Beispiel-App. (Sie können einen neuen MVC-app erstellen und nur diese schnell hinzufügen und sehen Sie selbst)
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");
}
AjaxTest Ausblick:
@ViewBag.Message
Übersicht:
<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>
, die seltsam, sieht aus wie du nicht der einzige bist ... http://stackoverflow.com/questions/2898855/built -in-method-to-encode-Ampersands-in-urls-returned-from-url-action – xandercoded
Können Sie posten, wie füllen Sie Ihren 'url' Parameter? Ich denke, Sie vermissen ein 'Html.Raw()' irgendwo ... – nemesv