MVC 5 + $Post() 函数在服务器上托管后不起作用

本文关键字:服务器 不起作用 函数 Post MVC | 更新日期: 2023-09-27 18:32:32

我在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)
    {}

我面临的问题是,当我通过Visual Studio运行ISPPDF()函数时,它被调用。但是,在服务器上托管我的应用程序后,它似乎没有调用该函数。

我觉得我指定的路径存在一些问题 -

我也尝试使用以下方式指定路径,但没有运气!

 /ControllerName/FunctionName
 ControllerName/FunctionName

任何帮助将不胜感激。

谢谢

MVC 5 + $Post() 函数在服务器上托管后不起作用

你永远不应该在 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。这样,您就不必通过多个视图来更改所有硬编码值。

试试这个,因为你的发布方法在视图文件中

$.post('../FunctionName',{ id: image,}, function (data) { alert("Successfully publish");}).error(function () {alert("Failed to publish"); });