Asp.NET MVC Html.TextBox刷新问题

时间:2010-04-06 14:19:39

标签: asp.net asp.net-mvc caching refresh html.textbox

我有一个asp.net mvc 2和html.textboxfor帮助器的问题。 我在表单中使用以下代码:

<%= Html.TextBoxFor(model => model.Zip, new { @class = "txt", id = "zip", tabindex = 1 })%>

当用户发送表单时,我验证了zipcode,当zip无效时我们设置了更正后的zip。 我的模型有更正的zip,asp生成的html代码包含旧的zip值。

样品: 用户写邮编:12345 我的验证课,修正了以下邮编:12346 我的模型包含新的zip:123456,在gui上我只看到12345

问题是什么?

2 个答案:

答案 0 :(得分:7)

您无法修改控制器操作中的值,因为生成文本框时帮助程序将始终使用POSTed值。这是设计使然,如果你想解决它,你将不得不编写自己的助手或手动生成文本框:

<input 
    type="text" 
    name="Zip" 
    value="<%= Html.Encode(Model.Zip) %>" 
    class="txt" 
    id="zip" 
    tabindex="1" 
/>

答案 1 :(得分:2)

使用ModelState.Clear()清除模型状态,更新对象然后返回它。