我正在使用ASP.NET MVC
开发我的网站,但是现在我正在执行注册页面。我对我的操作方法进行POST
,并想检查电子邮件是否仍然有效。如果电子邮件无效,则操作将再次返回视图,但是将重置表格(所有表单数据都消失了)。如何在没有刷新的情况下保留表单数据?
想象您有这样的模型:
public class RegistrationModel
{
[EmailAddress]
public int Email { get; set; }
// Other properties
}
然后,当该人请求注册页面时,您将使用这样的操作使用该页面:
[HttpGet]
public ActionResult Register()
{
var model = new RegistrationModel();
return View(model);
}
您的观点需要接受该模型。然后,视图(页面)将发送到浏览器。用户将填写并通过提交表格将其发送回去,以便您需要另一项操作来处理提交。该动作看起来像这样:
[HttpPost]
public ActionResult Register(RegistrationModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
// model is valid so do whatever you need to
// such as saving to db etc.
// Here do a redirect to some other page
return RedirectToAction("Index", "Home");
}
请参见上述操作,如果模型无效,则将模型发送到视图。该模型具有用户输入的电子邮件,因此将其渲染在文本框中,然后将其发送回用户。
编辑
我在模型中添加了 [EmailAddress]
属性。要使用它,请确保您导入命名空间系统。您可以使用许多其他属性,例如[Required]
等。完整列表在这里。