在新记录中验证Id字段

本文关键字:Id 字段 验证 新记录 | 更新日期: 2023-09-27 18:18:07

我正在为MVC创建一个自定义登录。在我的帐户控制器我有两个动作:

  • 索引(当用户注册时我在这里发布)

  • 登录

Index动作以MemberModel为参数,Login动作以LoginModel为参数。我的问题是我不能在索引验证MemberModel,因为错误"Id字段是必需的"。

我做了一点研究,并将[Bind(Exclude="Id")]添加到我的代码。所以,现在我的签名是这样的:

public ActionResult Index([Bind(Exclude="Id")]MemberModel model)

我的问题是,我不能张贴到这个方法,因为我添加了[Bind(Exclude="Id")]部分的签名。由于某种原因,所有的post请求都转到Login操作。

我的视图看起来像

@if (!Request.IsAuthenticated) { 
    using (@Html.BeginForm("Index","Account")) { 
    @Html.ValidationMessage("MailError")
    @Html.HiddenFor(m => m.Id)
    @Html.LabelFor(m => m.Name)
    @Html.TextBoxFor(m => m.Name)
    <br />
    @Html.LabelFor(m => m.Surname)
    @Html.TextBoxFor(m => m.Surname)
    <br />
    @Html.LabelFor(m => m.Email)
    @Html.TextBoxFor(m => m.Email)
    <br />
    @Html.LabelFor(m => m.Password)
    @Html.PasswordFor(m => m.Password)
    <input type="submit" value="Register" />
    }
}

在新记录中验证Id字段

你需要删除

@Html.HiddenFor(m => m.Id)