我正在尝试使用 jQuery 在 MVC4 应用程序中调用操作方法。我正在使用fancybox中显示的编辑表单上的按钮:
<input type="button" value="Approve" id="Approve" />
我$.post
在这个按钮上使用 jquery 点击
$("#Approve").click(function () {
debugger;
var ID = $("#AjaxGrid tbody tr:first").attr("data-pkey");
debugger;
var postParams = { Id: ID }
$.post('@Html.Raw(Url.Action("Approve"))', postParams)
.fail(function () {
alert("error occured while Approving");
});
});
在控制器中,以下是我的操作方法:
[HttpPost]
public ActionResult Approve(long id)
{
Evaluation evaluation = db.EvaluationRepository.GetByID(id);
evaluation.EvaluationStatusID = Convert.ToInt32(EvaluationStatusType.Approved);
return PartialView(evaluation);
}
但我总是得到相同的结果,即error occured while Approving
谁能帮我找出问题所在?
在浏览器上使用 F12 出现此错误
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
还有这个烦人的细节
“/”应用程序中的服务器错误。
参数字典包含“CubicHRMWeb.Areas.Employees.Controllers.EvaluationController”中方法“System.Web.Mvc.ActionResult Approve(Int64)”的不可为空类型“System.Int64”的参数“id”的空条目。可选参数必须是引用类型、可空类型或声明为可选参数。参数名称:参数
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ArgumentException:参数字典包含“CubicHRMWeb.Areas”中方法“System.Web.Mvc.ActionResult Approve(Int64)”的不可为空类型“System.Int64”的参数“id”的空条目。员工.控制器.评估控制器'。可选参数必须是引用类型、可空类型或声明为可选参数。参数名称:参数
源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
堆栈跟踪:
[ArgumentException:参数字典包含“CubicHRMWeb.Areas.Employees.Controllers”中方法“System.Web.Mvc.ActionResult Approve(Int64)”的不可为空类型“System.Int64”的参数“id”的空条目。评估控制器”。可选参数必须是引用类型、可空类型或声明为可选参数。参数名称:parameters] System.Web.Mvc.ActionDescriptor.ExtractParameterFromDictionary(ParameterInfo parameterInfo, IDictionary 2 parameters, MethodInfo methodInfo) +654635
System.Web.Mvc.<>c__DisplayClass1.<Execute>b__0(ParameterInfo parameterInfo) +18
System.Linq.WhereSelectArrayIterator
2.MoveNext() +85 System.Linq.Buffer 1..ctor(IEnumerable
1 source) +217 System.Linq.Enumerable.ToArray(IEnumerable 1 source) +78
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary
2 parameters) +133 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary 2 parameters) +27
System.Web.Mvc.Async.<>c__DisplayClass42.<BeginInvokeSynchronousActionMethod>b__41() +28
System.Web.Mvc.Async.<>c__DisplayClass8
1.b__7(IAsyncResult) +12 System.Web.Mvc.Async.WrappedAsyncResult 1.End() +57
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +50
System.Web.Mvc.Async.<>c__DisplayClass39.<BeginInvokeActionMethodWithFilters>b__33() +58
System.Web.Mvc.Async.<>c__DisplayClass4f.<InvokeActionMethodFilterAsynchronously>b__49() +237
System.Web.Mvc.Async.<>c__DisplayClass37.<BeginInvokeActionMethodWithFilters>b__36(IAsyncResult asyncResult) +12
System.Web.Mvc.Async.WrappedAsyncResult
1.End() +57 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +50 System.Web.Mvc.Async.<>c _DisplayClass2a.b_ 20() +24 System.Web.Mvc.Async.<>c _DisplayClass25.b_ 22(IAsyncResult asyncResult) +126 System.Web.Mvc.Async.WrappedAsyncResult 1.End() +57
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +45
System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult) +14
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +25
System.Web.Mvc.Async.WrappedAsyncResult
1.End() +62 System.Web.Mvc.Controller。 EndExecuteCore(IAsyncResult asyncResult) +61 System.Web.Mvc.Async.<>c _DisplayClass4.b__3(IAsyncResult ar) +25 System.Web.Mvc.Async.WrappedAsyncResult1.End() +62
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +49
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult) +28
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +25
System.Web.Mvc.Async.WrappedAsyncResult
1.End() +62 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +49 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult 结果) +9 System.Web.CallHandlerExecutionStep.System .Web.HttpApplication.IExecutionStep.Execute() +8862381 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184
版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.225