2011-12-07 148 views
4

這是我正在做的簡化版本。你可以在ASP.net MVC3中使用嵌套視圖模型嗎?

我創建了一個包含公司數據的視圖模型。該公司有3個地址。所以試圖聰明我創建了一個AddressViewModel和一個_address部分。

我的問題是,雖然我可以將AddressViewModel傳遞給partial,並且它呈現的地址我現在在HTML中有重複的id ...所以現在在窗體上有三個「Line1」輸入字段,其中當然不要妥善回傳。

我該如何解決此問題。是真的變平視圖模型,並具有唯一的出路,

MainAddressLine1 MailAddressLine1 BillAddressLine1

在公司視圖模型

?而且,如果我這樣做,我仍然可以以某種方式使用_address部分嗎?

回答

6

使用編輯模板,而不是部分:

@model MainViewModel 
@using (Html.BeginForm()) 
{ 
    @Html.EditorFor(x => x.MainAddress) 
    @Html.EditorFor(x => x.MailAddress) 
    @Html.EditorFor(x => x.BillAddress) 

    <button type="submit">OK</button> 
} 

,然後裏面~/Views/Shared/EditorTemplates/AddressViewModel.cshtml

@model AddressViewModel 
@Html.EditorFor(x => x.Street) 
@Html.EditorFor(x => x.ZipCode) 
... 

現在,您不必擔心輸入字段的名稱和ID。他們將被正確處理。

+0

不錯。我會試一試,我希望它會起作用,我會將其標記爲答案。 ;) – PilotBob

相關問題