2010-01-20 457 views
2

我用下面的代碼的aspx頁面調用ListArticles:Asp.Net的mvc - 渲染局部視圖 - 管理錯誤

<% Html.RenderPartial("Create", new Models.Article()); %> 

創建是一個局部視圖(Create.ascx)。

在我的控制,我得到了這樣的事情:

if (!ModelState.IsValid) { 
    return View(); 
} 

所以問題是,通過return View();產生的視圖不會呈現良好的看法。它應該呈現ListArticles視圖,同時突出顯示Create partial視圖中的錯誤,但它只顯示Create.ascx視圖。

有沒有辦法處理?

+2

改用Html.RenderAction? – Martin 2010-01-20 04:10:03

+0

同意馬丁。使用Html.RenderAction將所有這些功能封裝到它自己的自定義控制器/視圖組合中。如果您認爲合適,您可以在此自定義控制器內執行操作。 – 2010-01-20 18:41:28

+0

我嘗試使用Html.RenderAction來代替並得到相同的問題。你有任何示例或鏈接顯示如何做到這一點(與創建)? – Melursus 2010-01-20 23:36:14

回答

1

我建議這種情況下,你嵌入您的視圖一種形式,需要發佈並顯示您使用Ajax.BeginForm而不是部分視圖的錯誤。 部分視圖更適合顯示場景。

0

你確定你已經提供了所有的代碼嗎?

在您的控制器中,您將返回一個視圖,但不會將模型傳遞給它。

所以你需要返回視圖(文章)或類似的東西。出錯時,您仍然需要返回您首先用於渲染視圖的集合或模型。

0

您可能將操作名稱設爲「創建」,因此它只顯示 Create.ascx視圖。 嘗試把下面的代碼,而不是

if (!ModelState.IsValid) { 
    return View("ListArticles"); 
} 

你應該有Html.ValidationMessage()在你的Create.ascx看到驗證錯誤