dev*_*per 5 asp.net-mvc jquery
我正试图像这样进行ajax调用:
$.get('/home/myInfo', function (data)
{
....
});
Run Code Online (Sandbox Code Playgroud)
我是从以下页面调用它:http:// localhost/myapp/home/index
当我尝试进行上述调用时,它会转到:http:// localhost/myapp/home/index/home/myInfo
我希望它转到http:// localhost/myapp/home/myInfo
我必须指定绝对URL吗?
Dar*_*rov 14
绝对不会在ASP.NET MVC应用程序中硬编码这样的URL.在处理网址时始终使用网址助手,如下所示:
$.get('@Url.Action("MyInfo", "Home")', function (data) {
....
});
Run Code Online (Sandbox Code Playgroud)
或者,如果这是在一个单独的javascript文件中,你不能使用服务器端帮助程序,那么你可以在一些DOM元素上使用HTML 5 data-*属性你是AJAXifying,比如div或者其他东西:
<div id="mydiv" data-url="@Url.Action("MyInfo", "Home")">Click me</div>
Run Code Online (Sandbox Code Playgroud)
然后:
$('#mydiv').click(function() {
$.get($(this).data('url'), function (data) {
....
});
});
Run Code Online (Sandbox Code Playgroud)
或者如果您是AJAX化表单或锚点:
$('#myanchor').click(function() {
$.get(this.href, function (data) {
....
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
锚点当然是使用助手生成的:
@Html.ActionLink("click me", "MyInfo", "Home", null, new { id = "myanchor" })
Run Code Online (Sandbox Code Playgroud)
看到?无需硬编码网址.不要这样做,因为它会在您修改路线模式的第二步中断Global.asax.通过遵循这种技术,您的代码将完全与路由结构的任何变化无关.
| 归档时间: |
|
| 查看次数: |
3611 次 |
| 最近记录: |