2014-01-29 54 views
0

所以我有一個從SurfaceController派生的控制器。Umbraco和返回PartialView與無效的模型

我有局部視圖。

當用戶點擊提交時,它發佈到控制器方法。此方法將對模型和其他業務邏輯進行一些驗證。

如果失敗,我想將模型返回到顯示錯誤消息的局部視圖。在這種情況下,我使用ModelState.AddModelError將錯誤添加到模型狀態。

我這樣做,並且我在partialview區域看不到所有錯誤。

任何想法爲什麼?我不明白爲什麼在做時:

return PartialViewResult(model);

甚至:

返回CurrentUmbracoPage();

它不顯示錯誤。

這裏是我使用的代碼...

[HttpPost] 

public PartialViewResult Login(UserLogin ReceivedModel) 
     { 
      if (ModelState.IsValid == false) 
      { 
       return PartialView(ReceivedModel); 
      } 

      try 
      { 

       var returnedData = someClass.DoSomething(ReceivedModel); 

       if (!returnedData.Valid) 

       { 

        ModelState.AddModelError("Problem...."); 

        return PartialView(ReceivedModel); 


       } 
      } 
      catch (Exception ex) 
      { 
       ModelState.AddModelError(string.Empty, ex); 
       return CurrentUmbracoPage(); 
      } 
} 

所以,當我回來PartialView(ReceivedModel)(或返回CurrentUmbracoPage()),它就會顯示該頁面,但不顯示錯誤。

回答

0

你有

@ Html.ValidationMessageFor(X => Model.xxxx, 「必填字段」)

在你的看法?

+0

有和沒有嘗試過。最終找出了問題。基本上這個視圖不是呈現爲Html.Partial,而是呈現爲Html.Action。這造成了問題。 –