我正在开发 MVC 4 asp.net 应用程序(vb.net 项目)
<table>
<tr><td>Billable item</td><td>@Html.DropDownList("RteBillableItem") </td><td>Quantity</td><td>@Html.TextBox("Quantity")</td></tr>
<tr><td>Doctor Fee</td><td>@Html.TextBox("DoctorFee")</td><td>Hospital Fee</td>
<td>@Html.TextBox("HospitalFee")</td></tr>
<tr><td></td><td></td><td></td><td><input type="submit" id="AddItem" value="Add Item" /></td></tr>
</table>
如图所示,我将从下拉列表中选择一个项目,在文本框中输入一些数据,然后单击“添加项目”按钮,表单将回发。
回发控制器中的代码是:
HttpPost()
Function Index(ByVal Collection As FormCollection, ByVal Hidden As HiddenField) As ActionResult
Dim Test As New TestModel
Test.Update(CodeFactory(item), CInt(Collection("Quantity")),CInt(Collection("DoctorFee")), CInt(Collection("HospitalFee")))
//This will add the Item in a dictionary which i have used in my ModelTest
Return View(Test)
End Function
将项目添加到我的字典后,我将把这个模型发送到“视图”,我必须在表中列出值,从 TestModel 的字典中选择值。在 View 中列出值的代码是:
@For Each item In Model
Dim currentItem = item
@<tr>
<td>
@Html.DisplayFor(Function(modelItem) currentItem.BillableItemId)
</td>
<td>
@Html.DisplayFor(Function(modelItem) currentItem.BillableItemName)
</td>
<td>
@Html.ActionLink("Edit", "Edit", New With {.id = currentItem.OpBillId}) |
@Html.ActionLink("Details", "Details", New With {.id = currentItem.OpBillId}) |
@Html.ActionLink("Delete", "Delete", New With {.id = currentItem.OpBillId})
</td>
</tr>
next
</table>
但问题是,每当我回帖时,我之前添加到 TestModel 字典中的所有数据都会丢失。我知道我正在重新初始化模型的测试对象,TestModel。
我想我必须使用隐藏字段来保留 TestModel 的旧数据,即使在 PostBack 之后也是如此。但是我不知道怎么做,请提出宝贵的建议。