当表单被提交到服务器时,是否可以在控制器操作中操纵、更改、设置HTTP Post中包含的值?我想要删除用户输入的某些文本框值,以便这些值必须始终重新输入(例如密码字段)。默认情况下,Html助手从HTTP Post信息中提取HTML控件的初始值。
您不需要自定义的ModelBinder。
[Bind(Exclude="Foo,Bar")]
public ActionResult Insert(T model)
现在Foo和Bar都是null。
这样做可以实现你的要求,但我不确定这是否符合你的意思。 :)
我的猜测是,你的操作确实需要查看用户输入的密码(或其他内容)。但是,例如,如果需要重新输入其他字段,当重新显示表单时,不希望填充密码。这是一个好主意。但在这种情况下,模型绑定器甚至不会进入。你只需在重新显示视图之前将字段设置为null即可。
public ActionResult Insert(T model)
{
try
{
Repository.Add(model);
}
catch (Exception ex)
{
ViewData["Message"] = ex.Message;
model.Password = null;
return View(model);
}
// success!
return RedirectToRoute( //...
}