这似乎很容易,但不仅仅适合我。我有以下代码在我的HomeController
中从我的JavaScript文件中运行方法:
function(id) {
alert("here");
$.ajax({
url: '/HomeController/MethodName',
data: { id: id },
success: function(data){
alert('Sucess ' + data);
}
});
}
我的方法是
public string MethodName(int id)
{
return id.ToString() + "test ";
}
调用javascript的视图定义了以下脚本:jquery.unobtrusive-ajax.min.js,MicrosoftMvcAjax.js,MicrosoftAjax.js,validate.unobtrusive.min.js,jquery.validate.min.js
但不仅仅是工作。什么都没发生。该功能的第一个警报确实显示出来。但那之后别无其他。
答案 0 :(得分:1)
指定的网址错误。虽然我的控制器名称是HomeController
,但我放url: '/HomeController/MethodName'
而不是url: '/Home/MethodName',
答案 1 :(得分:1)
您应该让MVC框架的功能负责呈现URL。如果您更改路由,则可能意味着您必须绕过所有html页面并更新类似的引用。这样就可以避免上述问题。
使用
<%= Html.RenderAction("MethodName", "Home") %>
等
function(id) {
alert("here");
$.ajax({
url: <%= Html.RenderAction("MethodName", "Home") %>,
data: { id: id },
success: function(data){
alert('Sucess ' + data);
}
});
}
答案 2 :(得分:0)
你犯了格式错误。此url
字符串属性未正确关闭。您在data
属性的末尾也缺少逗号。
function(id)
alert("here");
$.ajax({
url: '/HomeController/MethodName', // last single quote was missing
data: { id: id }, // comma was missing
success: function(data){
alert('Sucess ' + data);
}
});