我在@Html.ActionLink
点击的活动上调用了javascript函数。 Javascript函数调用jquery函数,我在其中编写了用于调用json控制器方法的$.ajax
方法。但它没有调用控制器方法.......
这是我的代码:
查看
@Html.ActionLink("Submit", "AdminEvaluate", "Application", new { onclick = "Show('" + Model.applicationList.ApplicationId + "','statusList')" })|
此处,ApplicationId
来自数据库,statusList
是单选按钮组名称,我需要找到所选单选按钮。
Javascipt和jQuery代码
function Show(appId, appStatus) {
$.fn.gotof(appId,appStatus);
}
从视图获取参数并传递给jQuery函数
jQuery功能
$(document).ready(function () {
$.fn.gotof = function (appId, appStatus) {
var selectedItem = $("input[name='" + appStatus + "']:checked").val();
$.ajax({
url: '/Application/UpdateApplicantStatus',
data: { id: appId , status: selectedItem},
traditional: true,
dataType: "json",
contentType: "application/json",
success: function (data) {
alert(data);
}
});
});
控制器方法
public JsonResult UpdateApplicantStatus(int id, string status){
return Json("Correct", JsonRequestBehavior.AllowGet);
}
我已经在控制器方法上设置了断点,但它没有达到断点。
先谢谢。
答案 0 :(得分:3)
可能是这个样本帮助你:)让我知道
ajax调用类型:
$.ajax({
type: "GET",
url: '@Url.Action("UpdateApplicantStatus", "Application")',
contentType: "application/json; charset=utf-8",
data: { id: appId , status: selectedItem },
dataType: "json",
success: function() { alert('Success'); }
});
控制器:
public ActionResult UpdateApplicantStatus(int id, string status){
return Json(// blah blah blah ...
}
这应该可以让我知道
答案 1 :(得分:1)
您的ajax通话错误。
如果您的控制器方法签名是
public JsonResult UpdateApplicantStatus(int id, string appStatus)
然后你必须有一个参数名称与你的ajax调用参数匹配 所以,而不是
data: { id: appId , status: selectedItem}
只需写下
data: { id: appId , appStatus: selectedItem}
如果您有任何其他问题,请在浏览器的控制台中发布您应该提供的错误。
答案 2 :(得分:0)
控制器函数和ajax调用函数的参数名称应匹配。
你可以试试这个
data:{id:appId,appStatus:selectedItem},
答案 3 :(得分:0)
这样做实际上3个错误1是由@Mr代码通知类型缺失第2个你的参数不匹配,因为你的函数需要你以错误格式发送数据...
$(document).ready(function () {
$.fn.gotof = function (appId, appStatus) {
var selectedItem = $("input[name='" + appStatus + "']:checked").val();
$.ajax({
url: '/ApplicationController/UpdateApplicantStatus',
data:"{'id':'" + appId + "', 'appStatus': '" + selectedItem+ "'}",//here you format is wrong i correct it
traditional: true,
dataType: "json",
contentType: "application/json",
success: function (data) {
alert(data);
}
});
});
答案 4 :(得分:0)
坐了几个小时:
nullptr
如果脚本是在HTML页面中编写的,则必须使用
When using ajax - json in a js.script file:
the url is written with its real path e.g. - url: '/contoller/Action',
$.ajax({
url: '/NextPage/GetSpDropDown',
data: {'segInputVal': segInputVal},
cache: false,
type: "GET",
dataType: "json",
success: function (result) {
if (result.Success) {
var resultArray = result.Result;.....
并且不要忘记不要在控制器名称中包含单词controller。
我从stackoverflow得到了很多帮助 - 希望稍微支付一下