我的程序有可以創建項目(其行爲與文件夾類似)的用戶以及用戶可以添加文檔的項目中。 用戶可以與其他用戶共享項目。來自ModelState.AddModelError()的錯誤消息不會出現
我已經阻止了一個用戶可以在同一個項目中兩次添加同一個人,但我似乎無法顯示我想要的錯誤消息。
該電子郵件具有必需的屬性,並顯示這些錯誤消息(如果該消息無效且該消息框爲空)。
我沒有使用ModelState.AddErrorMessage()對嗎?
這是變量是如何在Model
[EmailAddress(ErrorMessage ="Please enter a valid email address!")]
[Display(Name = "Email")]
[Required(ErrorMessage = "You must enter an email!")]
public string email { get; set; }
這是我的控制器的一部分
//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" />
}
非常感謝您的快速響應! 我將'user.email'改爲''email''這是變量的名字,但是這個消息仍然沒有顯示。 任何想法爲什麼? –
''''空字符串會被AddModelError –
覆蓋嗯......它似乎不起作用,也許它不會覆蓋模型中給出的驗證。也許我需要考慮另一種方法。 感謝您的建議! –