Вам не нужен пользовательский ModelBinder.
[Bind(Exclude="Foo,Bar")]
public ActionResult Insert(T model)
Теперь Foo и Bar равны нулю.
Это делает то, что вы просите, но я не совсем уверен, что вы имели в виду. :)
Я предполагаю, что ваше действие должно видеть пароль (или любой другой), введенный пользователем. Но если, например, необходимо ввести другое поле, вы не хотите заполнять пароль при повторном отображении формы. Это хорошая идея. Но в этом случае связующие модели даже не вводятся. Вы просто устанавливаете поле в 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( //...
}