Razor mvc3 + jquery + UrlAction + PartialViews

Rod*_*obo 5 jquery razor asp.net-mvc-3

我有一个关于jQuery + Razor的问题..我想使用带有@ Url.Action的razor构建一个javascript变量,html属性将是输入值.像这样:

var d1 = $('#d1').val();
var d2 = $('#d2').val();
var url = "@Url.Action("Links", "PartialAccount", new { beginDate = "d1", endDate = "d2" })"
$("#links").fadeOut("slow").load(url).fadeIn("slow");

我怎样才能做到这一点?

它下面是一样的吗?
var url = "/PartialAccount/Links/?beginDate=" + d1 + "&endDate=" + d2;

GvS*_*GvS 10

您应该使用load InfernalBadger提出的方法:

load('@Url.Action("Links", "PartialAccount")', { beginDate: d1, endDate: d2})
Run Code Online (Sandbox Code Playgroud)

因为这将编码参数d1d2正确.但是,只有当您可以将参数作为查询字符串的一部分传递时,才能将它们作为URL本身的一部分传递.

所以如果你想要你的网址,你可以使用:

 /bar/foo?beginDate=1-1-2001&endDate=2-2-2001
Run Code Online (Sandbox Code Playgroud)

(注意日期中的/将被编码)

如果您希望自己的网址是以下内容,则无法使用此功能:

/bar/foo/1-1-2001/2-2-2001
Run Code Online (Sandbox Code Playgroud)

@Url使用beginDate和endData参数的方法不起作用,因为这是在将页面发送到浏览器之前在服务器上执行的.

并且通过使用+操作符的方法失败,用户在输入框中输入"特殊字符"(如破折号/).