来自Url.Content的不匹配网址

时间:2015-03-18 05:53:37

标签: javascript c# asp.net asp.net-mvc razor

通过Ajax我试图使用下面的代码命中控制器(Home)的动作方法(城市)

 url: '@Url.Content("~/Home/city")',

从地址栏我发现Url不匹配,因为我在不同的控制器中。例如,如果我在站点控制器中,那么它将重定向到站点/主页/城市。取而代之的是它应该重定向到Home / city。意味着它接受当前控制器和我通过Url.Content传递的URL。 如果我在.aspx中放置javascript代码,那么Url正确地重定向,如果javascript代码在单独的文件中,则会引发上述问题。 如何从javascript重定向到特定的Url?

1 个答案:

答案 0 :(得分:3)

如果您的JavaScript位于外部文件中,则可以使用以下技术访问操作的路径路径。

只需将url附加到调用ajax调用的元素作为数据属性。

在下面的示例中,我将其附加到输入按钮。

<input data-url="@Url.Action("city", "Home")" value="DoPost" />

然后从你的事件处理程序中你可以使用jQuery data方法来读取属性,即

var superUrl = $(this).data('url');

然后在你的ajax调用中使用它:

url: superUrl