返回View()的麻烦;

时间:2012-05-06 22:00:21

标签: asp.net-mvc

这是我的行动观点:

public ActionResult promo()
{
    var model = (from p in entity.promotion
                 where p.vehicule.Idag == User.Identity.Name
                 select p).ToList();
    return View(model);
}

这是我的HttpPost行动:

[HttpPost]
public ActionResult promo(string idv, string dd, string df, string remise)
{
    try
    {
        //some code
            ViewData["Resultat"] = "L'ajout de promotion à reussi";
            return View();
        }
        else
        {
            ViewData["Resultat"] = "Une promotion existe deja dans cette periode";
            return View();
        }
    }
    catch (Exception)
    {
        ViewData["Resultat"] = "L'ajout de promotion à echoué Veillez verifiez le Matricule de véhicule ou ressayer plus tard ";
        return View();
    }
} 

当我打电话给我的行动时,我发现了这个错误:

  

Laréférenced'objetn'estpasdéfinieàuneinstance d'un objet。

在这一行:

<% foreach (var item in Model) { %>

当我在页面之间导航时,我的页面工作正常,即使在我转到网址并点击go键工作之后收到此错误。 我觉得这里缺少一些简单的东西?

1 个答案:

答案 0 :(得分:1)

看起来你的视图需要一个模型。在第一个例子中,你给它一个适当的模型:

return View(model);

在第二种情况下,您没有在任何分支上传递模型:

return View();

在幕后,当您遍历foreach循环时,将调用Model.GetEnumerator(),如果model为null,则会获得您看到的空引用异常。您需要确保模型不为空,并且您可以使用Enumerable.Empty<T>();

轻松完成
return View(System.Linq.Enumerable.Empty<PromotionType>());