我在尝试将两个模型与视图结合使用时遇到了麻烦。我创建了一个合并模型对象:
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 助手控件的数据,对吧?
我不确定我这样做是否正确,因为当我提交表单时,传递回控制器的模型对象不包含任何数据。我是否在视图中执行了正确的语句?
谢谢。