我的变量是如何取消分配的,没有路径没有填充它

时间:2016-06-15 20:05:32

标签: asp.net-mvc entity-framework

这是一个使用存储过程填充复杂类型的实体项目,因此我可以将它们视为常规实体对象。

它给我的错误是Return("Index", model);'Use of unassigned local variable 'model'

以下是代码:

public ActionResult FilterCallReview(DateTime StartDate, DateTime EndDate, string searchField, string searchValue)
{
    ObjectResult<MasterMxieCallReview_Result> model;

    if (String.IsNullOrWhiteSpace(searchValue))
    {
        model = spdb.MasterMxieCallReview(StartDate, EndDate);
    }
    else
    {
        if (searchField.ToLower() == "contract_number")
        {
            // Check if we need to ignore the date
            if (1 == 1)
            {
                // Run the SP with dates
                model = spdb.MasterMxieCallReview_ContractNum(StartDate, EndDate, searchValue);
            }
            else
            {
                // Run the SP without dates
                model = spdb.MasterMxieCallReview_ContractNum(null, null, searchValue);
            }
        }
        else if (searchField.ToLower() == "phone_number")
        {
            // Check if we need to ignore the date
            if (1 == 1)
            {
                // Run the SP with dates
                model = spdb.MasterMxieCallReview_ContractNum(StartDate, EndDate, searchValue);
            }
            else
            {
                // Run the SP without dates
                model = spdb.MasterMxieCallReview_ContractNum(StartDate, EndDate, searchValue);
            }
        }
    }

    ViewBag.StartDate = StartDate.ToShortDateString();
    ViewBag.EndDate = EndDate.ToShortDateString();

    // Model should never be allowed to be null at this point
    return View("Index", model);
}

根据我的知识,没有任何model没有填充的路径,知道我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

如果searchField.ToLower()不是phone_numbercontract_number,则不会初始化模型。

答案 1 :(得分:1)

(在if-else语句中)路径,它不会为名为“model”的变量赋值,因此有一个posibillity模型将为null。您应该考虑所有可能的方法,并确保对于每种情况,“模型”变量都有价值。

在'else if'之前应该有'else'语句,以便在每种情况下分配模型变量。