2011-05-20 73 views
2

我有一個處理上傳圖像的組件,它在它自己的窗體中工作的很好,它是綁定到視圖模型的視圖,映射到控制器中的主模型,同樣我也有一個標準視圖綁定到一個簡單的視圖模型,然後映射到主模型並保存。兩種形式,一頁。查看模型,模型或其他東西?

因此,這兩個工作都很好,但是,我熱衷於將它們呈現給用戶在同一頁面 - 我完全被卡住了。

我有兩個不同的視圖模型需要這一頁,只是不知道如何前進,以及如何將它們合併。

我已經嘗試製作一個新的Viewmodel,它基本上包含了另外兩個View Models,但是當任何一個表單提交時,ModelState.IsValid總是返回false,因爲其他字段中的一些必需數據不存在。

通過擺脫ModelState.IsValid,應用程序工作正常,但作爲一個MVC新手,我感到有點不安,這只是想知道如果有人可以幫助我嗎?

(如果這確實需要有一個視圖模型爲每個表單一個新視圖模型,獎勵積分,如果你能告訴我,作爲爲數不多的我已經嘗試只是看起來很凌亂了良好的命名約定!)

回答

4

你可以試試使用部分視圖。

<div> 
    @Html.Partial("FormA") 
</div> 
<div> 
    @Html.Partial("FormB") 
</div> 

然後在FormA.cshtml,你必須:

@model Namespace.FormAViewModel 
<form> </form> 

然後換FormB

+0

我不得不重做/重新設計的代碼,一個巨大的部分相似,但我可以看到這是一個巨大的改進,我應該一直在使用......命名約定讓我非常生氣,因爲現在有了額外的模型/複雜性,但這只是語義 - 主要的是實際工作。謝謝! – Wil 2011-05-20 23:37:26

+0

我喜歡使用偏色的一件事是,當你想改變某些東西時,你只需找到該偏好視圖並在那裏改變它,而如果它在同一頁面上,你將不得不四處尋找它。 – 2011-05-21 22:25:00