0

我正在开发 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 之后也是如此。但是我不知道怎么做,请提出宝贵的建议。

4

0 回答 0