0

这是我的行动观点:

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();
    }
} 

当我调用我的操作时,我得到了这个错误:

La référence d'objet n'est pas définie à une instance d'un objet。

在这一行:

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

当我在页面之间导航时,我的页面工作正常,即使在我转到 url 并单击 go 键时出现此错误后它也可以工作。我认为这里缺少一些简单的东西?

4

1 回答 1

1

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

return View(model);

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

return View();

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

return View(System.Linq.Enumerable.Empty<PromotionType>());
于 2012-05-06T22:08:06.957 回答