使用jQuery.get时,我可以指定相关的URL?

我试图让Ajax调用就像这样:

$.get('/home/myInfo', function (data) { .... });

HTTP://本地主机/ MyApp的/家/索引我是从一个网页,在调用它

当我尝试作出上述呼吁,它进入:HTTP://本地主机/ MyApp的/家庭/指数/家庭/ MyInfo的

我希望它去到http://本地主机/ MyApp的/家庭/ MyInfo的

我必须指定绝对URL?

--------------解决方案-------------

绝对不会硬编码这样的网址在ASP.NET MVC应用程序。 使用URL打交道时,这样总是使用URL助手:

$.get('@Url.Action("MyInfo", "Home")', function (data) {
....
});

或者,如果这是在一个单独的JavaScript文件,你不能使用服务器端的助手,以及例如,你可以使用HTML 5的一些DOM元素上数据 - *属性TAT你AJAXifying,像一个div或东西:

<div id="mydiv" data-url="@Url.Action("MyInfo", "Home")">Click me</div>

接着:

$('#mydiv').click(function() {
$.get($(this).data('url'), function (data) {
....
});
});

或者如果你是一个AJAXifying形式或锚:

$('#myanchor').click(function() {
$.get(this.href, function (data) {
....
});
return false;
});

其中,当然会使用助手生成锚:

@Html.ActionLink("click me", "MyInfo", "Home", null, new { id = "myanchor" })

看到? 无需硬编码的URL。 不这样做,因为它会在打破非常第二你修改你的路由的格局Global.asax 。 按照此方法的代码将完全不可知的你的路由结构的任何更改。

你确定你复制和粘贴正确的代码? 因为当你拥有它,这应该是引用的http://本地主机的/ home / MyInfo的。 我可以看到你所描述的那样做的唯一原因是,如果使用的是相对URL这样你的代码是:

$.get('home/myInfo', function (data)

{

....

});

否则,如果你真正使用值“的/ home / MyInfo的”,而不是“家/ MyInfo的”,你已经引用的URL(“绝对”的网址是它开头的定义绝对版“/ “)。 我跑了一些快速测试,我的本地机器上,使用“/家/ MyInfo的”产生一个XHR请求到http://本地主机的/ home / MyInfo的

分类:asp.net的MVC 时间:2015-03-14 人气:4
本文关键词: asp.net的MVC和jQuery
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.701 (s). 10 q(s)