2010-06-17 61 views
0

我有一個名爲「Adress」的強類型局部視圖。此部分視圖包含與Adress模型類關聯的「輸入」字段。我想在同一個視圖中渲染兩次,因爲用戶必須輸入業務地址和傳遞地址。MVC在同一視圖中使用兩次相同的局部視圖

我有客戶端驗證問題,因爲所呈現的'輸入'的ID不是唯一的。

此外,我使用DataAnnotationModelBinder將模型返回到httppost。由於Request.Forms中的名稱衝突,我無法獲得這兩個地址對象。

有沒有辦法設置一種範圍,以便每個分部視圖的'輸入'的id具有可以被modelBinder識別的唯一ID?

回答

1

我不是舒爾有關驗證問題和數據詮釋,但通常你可以用muliple諧音這樣工作的:

  • 構建一個視圖模型是聚合了2個地址。可以說它是具有公共屬性BusinessAddress和DeliveryAddress的AddressViewData。兩者都是Address類型。地址有一個額外的屬性「InstanceName」。您填寫的實例名與 「BusinessAddress」 和 「是DeliveryAddress」

  • 中查看呼叫的RenderPartial( 「地址」,Model.BusinessAddress)和的RenderPartial( 「地址」,Model.DeliveryAddress)

  • 泛音使用成才這樣

    Html.TextBox(Model.InstanceName + 「.Street」)

其結果是,具有名稱屬性像這樣 「BusinessAddress.Street」一個FormelementDefaultModelbinder將正確地將其綁定。你的動作應該使用參數

public ViewResult CreateAddress(AddressViewData addresData) 
相關問題