【问题标题】:How to set validation message on dropdown list?如何在下拉列表中设置验证消息?
【发布时间】:2019-07-30 05:16:46
【问题描述】:

这就是问题所在。我的ViewModelSalesCenterId 属性上方有一个[Range] 属性。在我看来,我有一个带有默认选项“---Select---”的下拉列表和一些具有不同 ID 的销售中心。 For example, if I set the Range between 0 and 1, then when selecting a sales center with Id = 2, my custom error message works.但是当我选择默认选项“---Select---”(id = 0,范围在 1 到 1000 之间)时,会显示默认错误消息:“值 '---Select---' 无效为SalesCenterId。”为什么是这样?我通过调试检查并看到选择“---Select---”Id = 0.

我正在使用 MVC 核心 2.2

视图模型:

public class OrderViewModel
    {
        [Required(ErrorMessage = "*The Last Name field is required.")]
        public string LastName { get; set; }
        [Required(ErrorMessage = "*The First Name field is required.")]
        public string FirstName { get; set; }
        [Required(ErrorMessage = "*The Middle Name field is required.")]
        public string MiddleName { get; set; }
        [Required(ErrorMessage = "*The Pin field is required.")]
        public string Pin { get; set; }
        [Required(ErrorMessage = "*The Phone field is required.")]
        public string Phone { get; set; }
        [Required(ErrorMessage = "*The Email field is required.")]
        public string Email { get; set; }
        [Required(ErrorMessage = "*The Serial Number field is required.")]
        public string SerialNumber { get; set; }

        [Range(1, 1000, ErrorMessage="jgsjfdngi")]
        public int SalesCenterId { get; set; }

        [Range(1, 999, ErrorMessage = "jgsjfdngi")]
        public int OrderTimeId { get; set; }

        [JsonIgnore]
        [IgnoreDataMember]
        public SalesCenter SalesCenter { get; set; }

        public List<CartItem> Cart { get; set; }

        public OrderTime OrderTime { get; set; }

        public decimal TotalPrice { get; set; }
    }

验证消息跨度:

<p><span asp-validation-for="SalesCenterId" class="error"></span></p>

选择列表:

<td>
<select id="SCID" asp-for="SalesCenterId" asp-items="@ViewBag.SalesCenterId" class="input" style="width:200px; height:30px; padding:1.5%">
<option>---@Localizer["Select"]---</option>
</select><br />
</td>

我希望输出是“jgsjfdngi”,但实际输出是“值 '---Select---' 对 SalesCenterId 无效。”

【问题讨论】:

  • This 可能是你需要的

标签: asp.net-mvc validation .net-core


【解决方案1】:

您是否在控制器中使用了ModelState.IsValid? 试试这个

if (ModelState.IsValid)  
 {  
  // your code  
  return View();  
 }  
 return View();  

【讨论】:

  • 非常感谢您的回复。我是编程新手,可能没有正确理解您的观点,但据我所知,我认为 ModelState.IsValid 只是为了显示一些错误。但我的问题更多是关于显示自定义错误。我已经显示错误消息,但我需要对其进行自定义。
猜你喜欢
  • 2011-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多