【发布时间】:2019-07-30 05:16:46
【问题描述】:
这就是问题所在。我的ViewModel 的SalesCenterId 属性上方有一个[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