ASP.NET MVC:View不会使用更新的模型值进行呈现

时间:2010-05-20 07:36:12

标签: c# .net asp.net-mvc html-helper

我在填充子记录方面遇到了挑战。 我之前的代码就像 -

<%= Html.TextBox("DyeOrder.Summary[" + i + "].Ratio", Model.DyeOrder.Summary[i].Ratio.ToString("#0.00"), ratioProperties)  %>

此代码在回发后不会呈现更新的值。要解决此问题,我的工作就像 -

<%= "<input id='DyeOrder_Summary_" + i + "__Ratio' name='DyeOrder.Summary[" + i + "].Ratio'  value='" + Model.DyeOrder.Summary[i].Ratio.ToString("#0.00") + "' " + ratioCss + "  type='text' />"%>

这对我来说非常笨拙。有没有更好的想法...

2 个答案:

答案 0 :(得分:0)

只要你做了

   return View(YourUpdatedModel);

在你的“回发”之后(我不会在MVC中使用这个术语),它应该没问题。

请记住,返回视图的模型必须具有更新的值。

当您发布到控制器时,与asp.net webforms不同,没有ViewState或类似的东西。您在控制器中接收值,使用它们执行操作,然后返回视图。

新视图可能与控制器作为参数接收的模型相同(例如,如果存在任何验证错误),但不是必需的。如果没有对与之关联的对象变量进行模型更新(因为它似乎是你的情况),你需要更新你将与视图一起返回的对象,或者创建一个具有正确值的对象和归还那一个。

答案 1 :(得分:0)

怎么样:

<%= Html.TextBox(string.Format("DyeOrder_Summary_{0}__Ratio", i), ...) %>