2011-12-07 64 views
4
$.ajax(
     { 
    type: "GET",      
    url: 'Home/GetMsg',     
    success: function (result) {  }, 
    error: function (req, status, error) {} 
    });  

默認URL採用Home/GetMsg的相對路徑。我從不同的控制器/視圖調用這個函數來干擾URL。 我怎樣才能在這裏提到絕對和相對的路徑。我也試圖與 網址:「http://abc.com/Home/Getmsg」,但再次它不工作JQUERY Ajax中的Relatve和絕對路徑

回答

8

使用輔助:

url: '@Url.Action("GetMsg", "Home")', 

,或者如果這是在一個單獨的JavaScript文件,其中你不能使用服務器端的助手,你可以使用助手來生成使用HTML5一些現有的DOM元素上的URL數據 - *屬性:

<div id="foo" data-url="@Url.Action("GetMsg", "Home")">Foo</div> 

,然後在你的JS:

此外

@Url.Action("GetMsg","Home") 

,如果你打算使用Javascript中的路徑,它可能是使用隱藏的元素一個好主意:

3

由於您使用MVC,你可能會尋找Url.Action幫手與路徑,以便您可以使用外部的Javascript,例如:

@Html.Hidden("GetMsgPath",Url.Action("GetMsg","Home")) 

$.ajax({ 
    type: "GET",      
    url: $("#GetMsgPath").val(),     
    success: function (result) {  }, 
    error: function (req, status, error) {} 
});