调用控制器功能并传递值

时间:2016-12-15 19:09:02

标签: javascript c# angularjs asp.net-mvc

我试图在c#控制器中调用一个函数并传递一个值,但是我收到以下错误:`'无法获取属性'然后'未定义或空引用'。 我也添加了驱动程序模型。 提前感谢您的帮助。

JS

function getDrivers(lastName) 
{
    console.log(lastName);
    return $http.post(baseUrl + 'Admin/getDrivers', { lastName: lastName })
    .success(function (data, status, headers, config) {
        console.log(1);
    }).error(function (data, status, header, config) {
        console.log(2);
    });
}

C#Controller

 [HttpPost]
        public JsonResult getDrivers(DriverModel model)
        {

            JsonResult jsonResult = new JsonResult();
            try
            {
                jsonResult.Data = model.GetDrivers(model.lastName);
                return jsonResult;
            }
            catch (Exception ex)
            {
                return jsonResult;
            }
        }

HTML                            

vm.getMatches = function (searchText) {
if (searchText.length > 1)
{
    getDrivers(searchText);
}

2 个答案:

答案 0 :(得分:1)

您的$ http承诺回调未返回值。这意味着它将返回undefined,而不是您可能希望它返回的承诺。

此外,我们已弃用successerror,转而使用thencatch。你可能想要考虑的事情。

答案 1 :(得分:1)

您可能无法访问控制器,因为正在发布getDrivers函数,希望找到带有名为“lastname”的参数的函数getDrivers,但在您的控制器中,参数名为“model”,它也可能是一个字符串