MVC*_*ate 2 c# asp.net asp.net-mvc jquery asp.net-mvc-5
我在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)
{}
Run Code Online (Sandbox Code Playgroud)
我面临的问题是ISPPDF()函数在我通过visual studio运行时被调用.但是,在我在服务器上托管我的应用程序后,它似乎没有调用该函数..
我觉得我指定的路径存在一些问题 -
我也尝试过以下方式指定路径,但没有运气!
/ControllerName/FunctionName
ControllerName/FunctionName
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
谢谢,
你永远不应该在MVC中硬编码URL.
而是使用@Url.Action.
$.post('@Url.Action("FunctionName", "ControllerName")', //this is your url
Run Code Online (Sandbox Code Playgroud)
如果你需要发送参数,你可以这样做:
$.post('@Url.Action("FunctionName", "ControllerName", new { id = Model.ID })', //this is your url
Run Code Online (Sandbox Code Playgroud)
我推荐这个有两个重要原因:
1.错误输入URL的可能性很大.这个问题证明了这一点,OP错误地输入了URL.
2. Url.Action考虑到你的路线.如果您的路线发生变化,Url.Action将知道如何构建正确的网址.这样,您就不必通过多个视图来更改所有硬编码值.