gpt4 book ai didi

c# - 在 ValidationMessageFor block 中显示服务器端验证消息

转载 作者:太空宇宙 更新时间:2023-11-03 11:04:10 24 4
gpt4 key购买 nike

我使用的是标准 MVC 成员身份验证的变体。

鉴于我的模型有:

    [Required]
[Display(Name = "User name")]
public string UserName { get; set; }

并且该 View 具有:

<div class="form-field">
@Html.EditorFor(m => m.UserName)
@Html.ValidationMessageFor(m => m.UserName)
</div>

如果我关闭用户名字段,验证消息会正确显示“需要用户名字段”。

我需要的是,如果用户输入的用户名未能通过在提交的 ActionResult 中执行的进一步验证,我想显示一条自定义验证消息。

一个例子可能是用户输入了一个已经登录到系统的用户名(只会在提交时检查),所以 ValidationMessage 应该显示类似“用户已经通过工作站 xyz 登录”的内容。

我认为在 Razor MVC 4 中使用 CustomValidationAttribute 的一个很好的例子是最好的,因为我相信这是唯一可行的方法。唯一的问题是,这似乎是为了客户端验证。就我而言,我只想要服务器端。

最佳答案

进一步的搜索表明我找错了树。对于自定义服务器端验证消息,只需执行以下操作:

if (result.AlreadyLoggedIn)
{
ModelState.AddModelError("UserName", String.Format("User already logged in via workstation {0}", result.WorkstationName));
}

关于c# - 在 ValidationMessageFor block 中显示服务器端验证消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16556178/

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