回发时控制器方法参数值为null

时间:2018-01-18 17:29:10

标签: c# asp.net asp.net-mvc razor

以下是我要做的事情:

public ActionResult GetByConfirmationNumber(string confirmationNumber) {
if (confirmationNumber == null) return View();
            CPRSearchManager searchManager = new CPRSearchManager();
            IncidentLite[] cprData = searchManager.GetDataByConfirmationNumber(confirmationNumber, CurrentUser.Name);
            var cprSearchModel = new CPRSearchModel {
                IncidentsArray = cprData
            };
            return View(cprSearchModel); }

基本上,当最初导航到此方法时,confirmmatioNumber为null。我想要做的是在Ajax请求时更改confirmationNumber的值,然后返回包含模型的视图。这是我的ajax代码

function getCPRData() {
        var confirmationNumberValue = $("#confirmation_number_textBox").val();
        alert(confirmationNumberValue);
        $.ajax({
            type: 'POST',
            url: '@Url.Action("GetByConfirmationNumber", "CPRSearch")',
            data: { confirmationNumber : confirmationNumberValue },
            success: function() {
                alert(confirmationNumberValue);
            }
        });
    }

我验证了通过警报确保confirmNumberValue不为null。但是根据这个ajax请求,action中的confirmationNumber仍为null。我做错了吗?

1 个答案:

答案 0 :(得分:0)

要从请求正文中读取字符串,请将FromBody属性添加到参数:

public ActionResult GetByConfirmationNumber([FromBody]string confirmationNumber)