我正在为MVC创建自定义登录。在我的帐户控制器中,我有两个操作:
索引(我在用户注册时发布)
登录
Index操作以MemberModel
为参数,Login正在LoginModel
。我的问题是我无法验证Index中的MemberModel,因为错误“需要Id字段”。
我做了一些研究并将[Bind(Exclude="Id")]
添加到我的代码中。所以,现在我的签名看起来像这样:
public ActionResult Index([Bind(Exclude="Id")]MemberModel model)
我的问题是我无法发布此方法,因为我在签名中添加了[Bind(Exclude =“Id”)]部分。出于某种原因,所有发布请求都将转到“登录”操作。
我的观点看起来像
@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" />
}
}
答案 0 :(得分:0)
您需要删除
@Html.HiddenFor(m => m.Id)