我在MVC5中开发了一个应用程序。在下面的代码上单击Onclick链接会被调用 -
// 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
任何帮助都将不胜感激。
谢谢,
答案 0 :(得分:8)
你永远不应该在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
将知道如何构建正确的网址。这样,您就不必通过多个视图来更改所有硬编码值。
答案 1 :(得分:0)
试试这个,因为你的帖子方法在视图文件中
$ .post('../ FunctionName',{id:image,},function(data){alert(“Successfully published”);})。error(function(){alert(“无法发布”) );}};