1

ビューで使用するために2つのモデルを組み合わせるのに問題があります。統合モデルオブジェクトを作成しました。

Public Class BusinessFormModel
    Public Property busModel As Business
    Public Property busMetaModel As BusinessMeta

    Public Sub New()
         busModel = New Business
         busMetaModel  = New BusinessMeta
    End Sub

End Class

私の見解では、次のようなフォームがあります。

@ModelType business.BusinessFormModel

@Html.TextBox("business_category", Model.busModel.business_category)
..
@Html.TextBox("business_name", Model.busMetaModel.business_name)
..
@Html.TextBox("business_description", Model.busMetaModel.business_description)

私のコントローラーは次のようになります。

Function ShowForm() As ActionResult
     Dim model As new BusinessFormModel
     model.busModel.PopulateFromId(2)
     model.busMetaModel.PopulateFromId(2)

     Return View(model)
End Function

Function Submit(ByVal model As BusinessFormModel) As String
     model.busModel.UpdateCategory()
     ...
     model.busMetaModel.UpdateBusinessDescription()
     Return "Submitted"
End Function

基本的に、ShowFormは、IDに基づいてデータベースからの値をオブジェクトに入力します。idもこのモデルのプロパティです。次に、フォームが送信されると、IDに基づいて特定のフィールドを更新する機能があります。ただし、Submit()が呼び出されると、渡されるオブジェクトに値が含まれているように見えNothingます。少なくとも、HTMLヘルパーコントロールにバインドされたデータを取得する必要がありますよね?

フォームを送信すると、コントローラーに返されるモデルオブジェクトにデータが含まれていないため、これが正しく行われているかどうかはわかりません。ビューで正しいステートメントを実行していますか?

ありがとう。

4

1 に答える 1

1

ViewModel1つのビューに複数のモデルやその他のビジネスロジックを含めることができるようにする方法を検討する必要があります。ViewModelの例の演習

例として取り上げます。ViewModelのほかに、モデルをビューに公開する別のクラスがありますController

ViewModel

Public Class StoreIndexViewModel
    Public Property NumberOfGenres As Integer
    Public Property Genres As List(Of String) 

    Public Property AnotherComplexModel As ComplexModel
End Class

コントローラ

Public Function Index() As ActionResult
    'Create list of genres
    Dim genres = New List(Of String) From {"Rock", "Jazz", "Country", "Pop", "Disco"}
    'Create your view model
    Dim viewModel = New StoreIndexViewModel With {.NumberOfGenres = genres.Count, .Genres = genres}
    Return View(viewModel) 
End Function

では、同じ方法でオブジェクトViewを参照できますが、現在使用できるすべてのデータとその他のデータが含まれています。お役に立てれば。ModelModels

于 2013-01-26T23:23:12.020 に答える