tutorial - routeprefix c#




託管在服務器上的MVC 5+$ Post()函數無效 (2)

我已經在MVC5中開發了一個應用程序。 點擊查看下面的代碼的鏈接被調用 -

// Code in View File 

$.post('../ControllerName/FunctionName',  //this is your url
            {
                id: image,

            }, function (data) {
                alert("Successfully published");
            }
            ).error(function () {
                alert("Failed to publish");
            });


//Code in Controller

[HttpPost]
    public void ISPPDF(string id)
    {}

問題,我面臨的是ISPPDF()函數被調用,當我通過visual studio運行它。但是,當我託管我的應用程序在服務器上它似乎並沒有調用函數..

我覺得我指定的路徑有一些問題 -

我也嘗試指定路徑下面的方式,但沒有運氣!

 /ControllerName/FunctionName
 ControllerName/FunctionName

任何幫助,將不勝感激。

謝謝,


試試這個你的post方法是在view文件中

$ .post('../ FunctionName',{id:image,},function(data){alert(“Successful published”);})。error(function(){alert(“Failed to publish”);} );


你不應該在MVC中硬編碼URL。

而是使用@Url.Action

$.post('@Url.Action("FunctionName", "ControllerName")',  //this is your url

如果你需要發送參數,你可以這樣做:

$.post('@Url.Action("FunctionName", "ControllerName", new { id = Model.ID })',  //this is your url


有兩個重要的原因,我推薦這個:

1.錯誤URL的機會是巨大的。 這個問題證明了這一點,OP錯誤地輸入了URL。
2. Url.Action考慮到你的路線。 如果你的路線改變, Url.Action將知道如何建立正確的URL。 這樣,您將不必經過多個視圖來更改所有硬編碼的值。





asp.net-mvc-5