C# 在asp.net mvc中,如何添加验证
我想比较密码和指定的密码长度。在我更新它的控制器中有一些问题,它只在密码为空时返回视图,然后我应用了条件来匹配它们,但我希望这会自动完成,就像我要检查长度时一样,我不想在模型中应用另一个条件。请帮助我我的方法有什么问题 我试过这个密码 控制器:C# 在asp.net mvc中,如何添加验证,c#,asp.net-mvc,model-validation,C#,Asp.net Mvc,Model Validation,我想比较密码和指定的密码长度。在我更新它的控制器中有一些问题,它只在密码为空时返回视图,然后我应用了条件来匹配它们,但我希望这会自动完成,就像我要检查长度时一样,我不想在模型中应用另一个条件。请帮助我我的方法有什么问题 我试过这个密码 控制器: [AllowAnonymous] public ActionResult ResetPass() { return View(); } [HttpPost] [AllowAnonymous
[AllowAnonymous]
public ActionResult ResetPass()
{
return View();
}
[HttpPost]
[AllowAnonymous]
public ActionResult ResetPass(userPass model, string phoneNumber, String password, String repassword)
{
if (!String.IsNullOrEmpty(model.repassword) && !String.IsNullOrEmpty(model.password)&&model.password==model.repassword )
{
using (var db = new MongoContext())
{
db._database.GetCollection<userPass>("userPass");
var filter = Builders<BsonDocument>.Filter.Eq("_phoneNumber", phoneNumber);
var update = Builders<BsonDocument>.Update
.Set("password", password);
db._database.GetCollection<BsonDocument>("farmers").UpdateOne(filter, update, null);
return RedirectToAction("Login", new {Message = "password has been reset"});
}
}
return View(model);
}
视图:
@使用(Html.BeginForm(“ResetPass”、“Account”、FormMethod.Post))
{
密码
@Html.PasswordFor(m=>m.password)
@Html.ValidationMessageFor(m=>m.password,“,new{@class=“error”})
确认密码
@Html.PasswordFor(m=>m.repassword)
@Html.ValidationMessageFor(m=>m.repassword,“,new{@class=“error”})
}
@Scripts.Render(“~/bundles/jquery”)
@Scripts.Render(“~/bundles/jqueryval”)
只是稍微修改一下
对于最小长度,可以使用范围属性-
[Range(8, 25, ErrorMessage = "Min Length should be 8")]
第一个参数是minLength,第二个参数是maxLength
或
编辑比较属性
[Compare(CompareField = password, ErrorMessage = "Password and Confirmation Password must match.")]
以下是详细示例:
public class userPass
{
[BsonElement("password")]
[Required(ErrorMessage = "Password is required.")]
[StringLength(8, ErrorMessage = "Password length must be 8.")]
public string password { get; set; }
[BsonElement("repassword")
[Required(ErrorMessage = "Confirmation Password is required.")]
[Compare(CompareField = password, ErrorMessage = "Password and Confirmation Password must match.")]
public string repassword { get; set; }
}现在,它可以在控制器中进行比较,而无需写入条件,也可以进行必需的比较,但不用于字符串长度。@artista_14它不是
范围
,它的字符串长度
,OP只需定义最小长度
@renu您不提供的最小长度
同意@EdSF。您可以使用MinimumLengthalso@artista_14我无法升级投票,将显示此通知:感谢您的反馈!声誉低于15的人所投的票将被记录,但不会改变公开显示的帖子分数。
[Range(8, 25, ErrorMessage = "Min Length should be 8")]
[MinLength(8, ErrorMessage = "Min Length should be 8")]
[Compare(CompareField = password, ErrorMessage = "Password and Confirmation Password must match.")]
public class userPass
{
[BsonElement("password")]
[Required(ErrorMessage = "Password is required.")]
[StringLength(8, ErrorMessage = "Password length must be 8.")]
public string password { get; set; }
[BsonElement("repassword")
[Required(ErrorMessage = "Confirmation Password is required.")]
[Compare(CompareField = password, ErrorMessage = "Password and Confirmation Password must match.")]
public string repassword { get; set; }