【问题标题】:Incorrect error message is displayed by "ModelState.AddModelError" in Asp.Net Core Razore PagesAsp.Net Core Razor 页面中的“ModelState.AddModelError”显示不正确的错误消息
【发布时间】:2021-11-29 03:35:37
【问题描述】:

在下面我的OnPost 方法中,我检查字段CoursePrice 是否为数字:

public IActionResult OnPost(IFormFile imgCourseUp, IFormFile demoFileName) {
    float num;
    if (!float.TryParse(Course.CoursePrice.ToString(), out num))
    {
        ModelState.AddModelError("", "Put a Valid Number..");
        return Page();
    }
}

当我输入无效数字时,例如:“123kk”,一切都出错了。我的意思是 float.TryParse(Course.CoursePrice.ToString(), out num) 方法可以正常工作,我的代码没有任何问题。但是当我运行项目并输入无效号码时,错误消息会是别的东西!例如在这部分ModelState.AddModelError("", "Put a Valid Number.."),我说错误消息必须是Put a Valid Number..,但它向我显示了这个错误:值'123l'对于قیمت无效??

那么有人有什么想法吗?

这是我的 View Razore:

<div class="form-group">
   <label>قیمت دوره </label>
   <input class="form-control" type="text" asp-for="@Model.Course.CoursePrice" value="0" />
   <p class="help-block">لطفا فقط عدد وارد کنید</p>
 </div>

 <div class="form-group">
     <div asp-validation-summary="All"></div>
 </div>

【问题讨论】:

  • 您是否正在并行运行另一个验证框架?例如。是否为该属性设置了数据注释,或者您使用的是 fluentvalidation?

标签: c# asp.net-core razor-pages modelstate


【解决方案1】:

ModelState.AddModelError 的第一个参数应该是你的模型属性的名称,所以它知道错误发生在哪个属性中。

尝试将行 ModelState.AddModelError("", "Put a Valid Number.."); 更改为 ModelState.AddModelError(nameof(Course.CoursePrice), "Put a Valid Number..");

完整代码:

public IActionResult OnPost(IFormFile imgCourseUp, IFormFile demoFileName) {
    float num;
    if (!float.TryParse(Course.CoursePrice.ToString(), out num))
    {
        ModelState.AddModelError(nameof(Course.CoursePrice), "Put a Valid Number..");
        return Page();
    }
}

【讨论】:

  • 我完全知道你在说什么。你之前说的方法我试过了,没有任何影响!
  • 也许它将新错误附加到现有错误列表中。如果您调用 ModelState["CoursePrice"].Errors.Clear(); 会发生什么在调用 ModelState.AddModelError 之前?
  • 我刚刚尝试了 ModelState["CoursePrice"].Errors.Clear(),但再次向我显示了同样的错误! :)
猜你喜欢
  • 2019-06-16
  • 2020-08-07
  • 1970-01-01
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 2015-07-03
  • 2021-06-26
  • 2023-04-09
相关资源
最近更新 更多