gpt4 book ai didi

c# - 返回验证错误

转载 作者:太空狗 更新时间:2023-10-30 01:05:37 26 4
gpt4 key购买 nike

我有这个 LoginControllerLoginModel 能够提供对字符串长度和必填字段的验证。这在 Razor 页面中显示良好。

public class LoginController : Controller
{
public ActionResult Index()
{
return View();
}

[HttpPost]
public ActionResult Index(LoginModel model)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.Username, model.Password))
{
FormsAuthentication.SetAuthCookie(model.Username, model.NotPublicPc);
var url = FormsAuthentication.GetRedirectUrl(model.Username, model.NotPublicPc);
return Redirect(url);
}
else
{
//here I want to throw my own validation message or otherwise
//give feedback that the login was unsuccessful
}
}
return View();
}
}

public class LoginModel
{
[Required]
[StringLength(50, MinimumLength = 4)]
public string Username { get; set; }

[Required]
public string Password { get; set; }

[Display(Name = "Keep me logged in - do not check on public computer")]
public bool NotPublicPc { get; set; }
}

我如何抛出我自己的验证错误 - 即我想在登录失败时显示一条消息。虽然我现在很欣赏在浏览器中完成所需和长度的验证,但这是不同的。

我试过抛出 ExceptionSystem.ComponentModel.DataAnnotations.ValidationException

最佳答案

如果您抛出一个未处理的异常,客户端将收到一个 http 500 错误(除非您抛出一个 HttpException 并指定一个错误号)。如果这是可取的,那就是你能做的。否则,您可以尝试向模型状态添加错误消息:

ModelState.AddModelError("PropertyName", "Error Message"); 

关于c# - 返回验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18107115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com