【发布时间】:2013-11-22 23:03:49
【问题描述】:
我正在使用 Viewmodel,但是当我提交表单时,我没有取回值。
我有一个这样的模型...
Public Class ProductSummaryModel
Property productGUID As Integer
Property productName As String
Property productPrice As Double
Property productSku As String
Property categories As String()
Property ShipsWithin As Nullable(Of Integer)
<AllowHtml>
Property productWebDescription As String
Property ImageMainPath As String
End Class
然后我有一个像这样的 ViewModel...
Public Class ProductViewModel
Public ProductSummary As ProductSummaryModel
End Class
这是我的控制器...
Public Function Add() As ActionResult ' Default View To Add Item
Dim prdsummary As ProductViewModel = New ProductViewModel
Return View("Add", prdsummary)
End Function
在我的“添加”视图中,我关注...
<tr>
<td>Price: </td>
<td><%=Html.TextBoxFor(Function(f) f.ProductSummary.productPrice)%></td>
</tr>
问题是,当我提交表单时,我无法获取 POSTED 表单值。
Public Function AddItem(ByVal Model As ProductViewModel) As ActionResult ' Add Item into DB
Dim ajaxMessage As New AjaxFormResponse
Dim prd As ProductSummaryModel = New ProductSummaryModel
Model.ProductSummary = prd
Dim skuID As Integer = 0
msgbox(Model.ProductSummary.categories) ' Empty
End Function
可能有更好的方法来处理这个问题。
* 更新 **
我已经弄清楚问题出在哪里...当将模型传递给 ViewModel 时,我必须这样做...
Dim Product As ProductViewModel = New ProductViewModel
Dim ProductSummary As New ProductSummaryModel
Product.ProductSummary = ProductSummary
Return View("Add", Product)
【问题讨论】: