2011-08-12 19 views
3

正如主題所說,這是一個壞主意嗎?如果是這樣,爲什麼?將ViewData ModelState導出爲子操作

目前,如果您從@ Html.Acion中渲染某些輸入字段,則驗證錯誤不會顯示給用戶,因爲在涉及@ Html.Action(在其上下文中)時,會清除ModelState。 )

那麼最好的模式是什麼?

+0

你是否設法通過子動作或部分視圖或以任何其他方式解決它? –

+0

我繼續進行部分視圖,將額外數據添加到ViewBag上。在我看來,這是一個可以接受的妥協,而不是試圖破解Html.Action – kidoman

回答

4

您可以通過ControllerContext.ParentActionViewContextViewContext.ParentActionViewContext(詳情here)訪問父上下文,但我認爲有更好的解決方案。

如果您不希望使用獨立於當前控制器操作和視圖(例如用戶歡迎標籤,導航欄等)的數據污染所有視圖模型,則子動作是一個不錯的選擇。 )。

對於其他重用場景,如常用輸入字段,局部視圖是更好的方法。

但是,如果您提供有關您當前場景的更多詳細信息,我會嘗試提出更具體的解決方案。