gpt4 book ai didi

c# - 来自 ModelState.AddModelError() 的错误消息没有出现

转载 作者:行者123 更新时间:2023-11-28 00:57:52 25 4
gpt4 key购买 nike

我的程序有可以创建项目(其行为类似于文件夹)的用户,并且用户可以在项目中添加文档。然后用户可以与其他用户共享该项目。

我已经阻止了用户可以在同一项目中两次添加同一个人,但我似乎无法显示我想要的错误消息。

电子邮件具有 Required 属性,并且会显示这些错误消息(如果它无效且该框为空)。

我没有正确使用 ModelState.AddErrorMessage() 吗?

这就是变量在模型中的样子

    [EmailAddress(ErrorMessage ="Please enter a valid email address!")]
[Display(Name = "Email")]
[Required(ErrorMessage = "You must enter an email!")]
public string email { get; set; }

这是我的 Controller 的一部分

//Prevent double share
List<ProjectModel> userProjects = projectService.getAllProjects(user.email);
foreach(var proj in userProjects)
{
if(proj.name == userService.getProjectByID(urlInt).name)
{
//This is the error message I am trying to display
ModelState.AddModelError(user.email, "This user already has access to this project!");
return View(user);
}
}
userService.share(user.email, urlInt);
return RedirectToAction("../Dashboard/Dashboard");

这是我的看法

@using (Html.BeginForm("Share", "User", FormMethod.Post, new { @class = "add-document-form" }))
{
<div class="add-document-div">
<div class="form-group">
<label for="email" class="control-label">Email address</label>
<br />
@Html.TextBoxFor(m => m.email, new { @class = "form-conrtol" })
<br />

<!--Here is the validation for the email button-->
@Html.ValidationMessageFor(m => m.email, "", new { @class = "text-danger" })
</div>
</div>
<input type="submit" class="btn btn-fab" value="Send invitation" />
}

最佳答案

ModelState.AddModelError 的过载您正在使用的有两个参数;要向其添加错误的模型属性的名称,以及实际错误。您需要确保第一个参数是正确的名称。在这种情况下,我假设 "email"

目前,您给它的是 user.email 包含的任何内容,而不是字段名称。

关于c# - 来自 ModelState.AddModelError() 的错误消息没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43899905/

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