开发者

Razor mvc3 + jquery + UrlAction + PartialViews

开发者 https://www.devze.com 2023-02-13 12:47 出处:网络
I have a question about jQuery + Razor.. I want to build a javascript variable using razor with @Url.Action and the html attributes will be values of inputs.

I have a question about jQuery + Razor.. I want to build a javascript variable using razor with @Url.Action and the html attributes will be values of inputs. Like this:

开发者_如何转开发

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

How can I do this?

Is it the same that below?

var url = "/PartialAccount/Links/?beginDate=" + d1 + "&endDate=" + d2;


You should use the load method as proposed by InfernalBadger:

load('@Url.Action("Links", "PartialAccount")', { beginDate: d1, endDate: d2})

because this will encode the parameters in d1 and d2 correctly. But only if you can pass the parameters as part of the querystring, not when they should be a part of the url itself.

So you can use if you want your url to be:

 /bar/foo?beginDate=1-1-2001&endDate=2-2-2001

(note that the /'s in the date will be encoded)

You cannot use this if you want your url to be:

/bar/foo/1-1-2001/2-2-2001

The @Url method, with the beginDate and endData parameters, does not work, because this is executed on the server, before the page is send to the browser.

And your method by using the + operator fails the user enters "special characters" in the input boxes (like dashes /).


I would pass the two values via the data parameter of load() if you want to get the values from dom elements?

$("#links").fadeOut("slow").load(url, { beginDate: d1, endDate: d2}).fadeIn("slow");
0

精彩评论

暂无评论...
验证码 换一张
取 消