MVC-如何在不刷新文本框的情况下返回上一页



我正在使用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]等。完整列表在这里。

最新更新