Если вы хотите изменить значения POSTed, вам нужно удалить их из состояния модели, иначе HTML-помощники всегда будут использовать значения POSTed, а не значения в вашей модели. Вот как работают HTML-помощники, и это поведение разработано. Например, помощник Html.TextBoxFor(x => x.EmailAddress)
видит, что существует значение POSTed EmailAddress
, и он будет использовать это значение вместо того, которое вы передаете в модели.
Итак, вы должны либо удалить значения, которые вы хотите изменить, из состояния модели, либо написать свои собственные помощники HTML:
[HttpPost]
public ActionResult Register(Register model)
{
var t = new Register();
t.EmailAddress = "test";
t.Password = "1";
t.VerifyPassword = "2";
ModelState.Remove("EmailAddress");
ModelState.Remove("Password");
ModelState.Remove("VerifyPassword ");
return PartialView("p_register2", t);
}
и, глядя на это действие, можно задать себе вопрос: какова цель модели Регистра, которую вы используете в качестве аргумента действия? Итак:
[HttpPost]
public ActionResult Register()
{
var t = new Register();
t.EmailAddress = "test";
t.Password = "1";
t.VerifyPassword = "2";
return PartialView("p_register2", t);
}