【问题标题】:Show validation message for razor view for input type number but model attribute string显示输入类型编号但模型属性字符串的剃刀视图的验证消息
【发布时间】:2021-10-28 12:21:39
【问题描述】:

我的模态类中有一个字符串字段,用户只需要输入 1-8 之间的数字。 模态类属性:

[MaxLength(1)]
[MinLength(1)]
[Required(ErrorMessage = "Please enter correct value")]
public string RoomNumber { get; set; }

此输入在视图页面中被询问为:

<div class="form-group">
@Html.LabelFor(model => model.RoomNumber, htmlAttributes: new { @class = "col-md-12" })
<div class="col-md-12">
    @Html.EditorFor(model => model.RoomNumber, new { htmlAttributes = new { @class = "form-control input-digit", @type = "number", @min = "1", @max = "8" } })
    @Html.ValidationMessageFor(model => model.RoomNumber, "", new { @class = "text-danger" })
</div>
</div>
  1. 如果用户输入的值不正确,我想为用户打印验证消息,我的意思是如果他们输入的值大于 8,则显示错误消息。

  2. 我还可以将用户输入限制在 1 到 8 位数字之间吗?有可能吗?

由于项目限制,我无法更改RoomNumber属性的数据类型。

谢谢。

【问题讨论】:

    标签: c# asp.net-mvc validation asp.net-mvc-4 razor


    【解决方案1】:

    在下面的示例中,RegularExpression 属性用于验证 RoomNumber 属性:

    public class RoomInfo
    {
        [RegularExpression(@"^[1-8]{1}$", ErrorMessage = "Enter valid number from 1 to 8"), Required]        
        public string RoomNumber { get; set; }
    }
    

    观点:

    @model RoomInfo
    
    @using (Html.BeginForm("Save", "Home"))
    {
        @Html.ValidationSummary();
    
        <div class="form-group">
                @Html.LabelFor(m => m.RoomNumber)
                <p>@Html.TextBoxFor(m => m.RoomNumber, htmlAttributes: new { type="number", placeholder = "Room number" })</p>
                @Html.ValidationMessageFor(m => m.RoomNumber)
         </div>
        <button type="submit" class="btn btn-primary">Save</button>
    }
    

    【讨论】:

    猜你喜欢
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 2012-08-31
    相关资源
    最近更新 更多