url

时间:2017-10-31 11:01:55

标签: c# url-parameters actionmethod non-nullable

我有一些javascript调用控制器上的动作方法(MVC,C#),定义了两个参数,两个都有值,但我得到一个空引用异常。下面是调用action方法的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;
        });

这是生成的网址

“/基准/弹出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));
    }

但我收到此错误

参数字典包含参数'reportName'的空条目,该参数为'可空类型'Common.Helpers.EnumHelper + Reports',用于方法'System.Threading.Tasks.Task`1 [System.Web.Mvc.ActionResult] 'Controllers.Benchmark.BenchmarkController'中的PopUp(Int32,Reports)'。可选参数必须是引用类型,可空类型,或者声明为可选参数。 参数名称:参数

我无法想出这个,参数没有拼写错误且有值,为什么我会收到此错误?

0 个答案:

没有答案