2011-12-07 11 views
4

ここに私がやっていることの簡略版があります。ASP.net MVC3でネストされたビューモデルを使用できますか?

私は会社のデータを含むビューモデルを作成しました。同社は3つのアドレスを持っています。そこで賢明にしようとして、私はAddressViewModelと_addressの部分を作成しました。

私は、AddressViewModelを部分的に渡してアドレスをレンダリングする間、私は現在HTML内に重複しているIDを持っている...というように、3つの "Line1"入力フィールドがありますコースは正しくポストバックしません。

この問題を解決するにはどうすればよいですか。

MainAddressLine1 MailAddressLine1 BillAddressLine1会社のビューモデルで

、本当にViewModelにを平らにして持っている唯一の方法ですか?そして、私がこれを行うなら、私はまだ何らかの形で_addressの部分を使うことができますか? ~/Views/Shared/EditorTemplates/AddressViewModel.cshtml内部

@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> 
} 

、その後:

答えて

6

ではなく、部分のエディタテンプレート使用

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

を今、あなたは、入力フィールドの名前とIDを心配する必要はありません。彼らは正しく処理されます。

+0

ニース。私はそれを試してみると、それは動作すると期待し、私はこれを答えとしてマークします。 ;) – PilotBob

関連する問題