2012-05-06 36 views
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(); 
    } 
} 

當我把我的動作,我得到這個錯誤:

拉提及此戰爭D'OBJETñ 'est pasdéfinieàun instance d'un objet。

在這一行:

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

我的頁面時,我頁之間導航,即使收到此錯誤後,當我去的網址,點擊進入鍵它工作的正常工作。 我覺得這裏缺少一些簡單的東西?

回答

1

它看起來像你的看法需要一個模型。在第一種情況下,你給它一個合適的型號:

return View(model); 

在第二種情況下,你是不是傳遞一個模型上的任何分支:

return View(); 

在幕後,當我們通過遍歷foreach循環,調用Model.GetEnumerator(),如果model爲null,則會得到您所看到的空引用異常。您需要確保該模型是不是空的,你可以很容易地這樣做使用Enumerable.Empty<T>();

return View(System.Linq.Enumerable.Empty<PromotionType>()); 
+0

,如果我把這個'返回視圖(「促銷」);'它應該工作,但我得到了同樣的錯誤?因爲我不想使用'RedirectToaction(「promo」);'' – Chlebta

+0

'return View(「promo」)'幫助MVC找到一個特定的視圖,但這不是問題,它已經知道你要查看哪個視圖,但是你沒有提供視圖需要的模型。 –

+0

我用'RedirectToAction'和'tempData'代替'viewData' – Chlebta