在MVC4中使用$.AJAX发出AJAX请求
我正在尝试使用MVC4中的$.AJAX和Razor发出一个AJAX请求。我不知道如何实施它 通过使用,我能够成功地进行一个返回数据的链接驱动调用,但我似乎无法从jquery函数内部执行相同的操作。我似乎找不到任何基本的例子来说明如何做到这一点。 这就是我正在处理的问题: HomeController.cs在MVC4中使用$.AJAX发出AJAX请求,ajax,asp.net-mvc,asp.net-mvc-4,razor,Ajax,Asp.net Mvc,Asp.net Mvc 4,Razor,我正在尝试使用MVC4中的$.AJAX和Razor发出一个AJAX请求。我不知道如何实施它 通过使用,我能够成功地进行一个返回数据的链接驱动调用,但我似乎无法从jquery函数内部执行相同的操作。我似乎找不到任何基本的例子来说明如何做到这一点。 这就是我正在处理的问题: HomeController.cs public string test(){ return "It works"; } View.cshtml function in
public string test(){
return "It works";
}
View.cshtml
function inventory(dealerID) {
$.ajax({
url: '@Url.Action("HomeController","test")',
data: {dealerID: dealerID},
type: 'POST',
success: function(data) {
process(data);
}
});
}
您只需将其设置为
操作结果
。另外,如果您使用的是ajaxpost,那么需要使用HttpPost
属性标记操作。试试这个:
[HttpPost]
public ActionResult test(string dealerID)
{
return Content("It works");
}
编辑实际上,语法还有一些其他问题
Url.Action
的控制器/操作参数顺序错误--应先是“ActionName”,然后是“ControllerName”Url.Action
,如果控制器类是“HomeController”,则只需要“Home”success:function(data){}
在您的示例中,
test()
方法如何从您发送的JSON中获取dealerId
?我是否应该假设它作为参数传递给方法,而您只是忽略了它?@crush是的,没错。MVC路由系统足够灵活,可以从任何可用的地方提取控制器参数——查询字符串、post数据或路由数据。@McGarnagle:如何将C代码添加到外部js文件中?我知道如何处理html文件,但不知道如何处理js文件。最好将外部依赖性从JS中剔除;或者将依赖C#的JS作为内联脚本或局部视图包含。
$.ajax({
url: '@Url.Action("test", "Home")',
data: {dealerID: dealerID},
type: 'POST',
success: function(data) {
alert(data);
}
});