2011-02-22 53 views
0

我有一個可以在本地正常工作的.js文件,但是當我提交併添加到我的服務器時,我有點問題。我的控制器名稱爲「Home」,JsonResult函數爲「LoadTable」。Json路徑觸發本地,但未發佈。爲什麼?

$(document).ready(function() { 
$('#tableClick').click(function() { 
    $.post("Home/LoadTable", $('#FormTable').serialize(), function (data) { 
     alert("test"); 
    }, 'json'); 
}); 
}); 

我應該在發佈時使用路徑名嗎?如果是的話,如果可能的話,我如何在我的webconfig中從本地切換到服務器版本?

還有其他的選擇嗎?

+0

哪裏是`首頁/ LoadTable?我的意思是在哪個目錄下? – Val 2011-02-22 16:58:00

+0

@Val - 我不確定dir是什麼。 LoadTable位於HomeController.cs文件中並更改爲上面的函數。希望這可以幫助。 – MrM 2011-02-22 17:01:52

回答

2
  1. /主頁/可裝入=絕對= example.com/Home/LoadTable
  2. 首頁/可裝入=相對= {} current_url/HomeLoadTable
0

隨着瓦爾的幫助下,我能想出與以下。

var pathName = window.location.pathname; 
if (pathName == "/") { pathName = ""; } 
$.post(pathName + "Home/LoadTable", $('#FormTable').serialize(), function (data) { 
    alert("test"); 
}, 'json');  
0

永遠不要硬編碼的網址。使用URL處理時,必須使用網址助手:

$.post(
    '<%= Url.Action("LoadTable", "Home") %>', 
    $('#FormTable').serialize(), 
    function (data) { 
     alert('test'); 
    }, 
    'json' 
); 

另一種可能性是有聯繫的地方在頁面上:

<%= Html.ActionLink("Load table", "LoadTable", "Home", null, new { @class = "loadTable" }) %> 

,你會AJAXify:

$(function() { 
    $('.loadTable').click(function() { 
     $.post(this.href, $('#FormTable').serialize(), function (data) { 
      alert('test'); 
     }, 'json'); 
     return false; 
    }); 
});