我有一些在控制器(MVC、C#)上调用操作方法的 javascript,定义了两个参数,都有值,但我得到一个空引用异常。这是调用动作方法的javascript
$("*[id^=popout1]").on("click", function () {
//debugger;
$(".FakeClass").dropdown('toggle');
var id = this.getAttribute("data-id");
var reportType = $('#ReportExecutionType').val();
var url = '@Url.Action("PopUp", "Benchmark", new { cid = "_id_" , reportName = "_ret_"})'.replace('_id_', id).replace("_ret_", reportType);
newwindow = window.open(url, 'name', 'height=800,width=850');
if (window.focus) { newwindow.focus() }
return false;
});
这是生成的网址
"/Benchmark/PopUp?cid=113&reportName=17"
这是 c# 动作方法
[LayoutInjecter("_EmptyLayoutPage")]
[HttpGet]
public async Task<ActionResult> PopUp(int cid, Helpers.EnumHelper.Reports reportName)
{
return View("PopUp", await PopulateResponse(cid, reportName));
}
但我得到这个错误
参数字典包含方法'System.Threading.Tasks.Task`1 [System.Web.Mvc.ActionResult] PopUp(Int32)的不可空类型'Common.Helpers.EnumHelper + Reports'的参数'reportName'的空条目, 报告)”在“Controllers.Benchmark.BenchmarkController”中。可选参数必须是引用类型、可空类型或声明为可选参数。参数名称:参数
我无法弄清楚这个,参数没有拼写错误并且它有一个值,那么为什么我会收到这个错误?