我在MVC C#中有一个强类型视图,用户必须在其中输入一个int值,该属性为
[Required(ErrorMessage="especificar correlativo")]
[Display(Name = "Correlativo")]
[Range(1, 9999, ErrorMessage = "correlativo no valido")]
[RegularExpression(@"^(((\d{1})*))$", ErrorMessage = "correlativo no valido")]
public int correlativo1
{
get { return Correlativo1; }
set { Correlativo1 = value; }
}
但我的问题是当vies显示时,输入让用户通过输入右侧的箭头指定负值
是的,它显示了验证消息
但我不想(因为非常开始)让用户可以选择指定负值。
这是视图中的输入
<div class="form-group">
<div class="col-md-2">
@Html.LabelFor(model => model.correlativo1, htmlAttributes: new { @class = "control-label" })
@Html.EditorFor(model => model.correlativo1, new { htmlAttributes = new { @class = "form-control left-border-none", @id = "idCorrelativo", @title = "especifique correlativo de licitación", @Value = ViewBag.correlativo } })
@Html.ValidationMessageFor(model => model.correlativo1, "", new { @class = "text-danger" })
</div>
你可以告诉我如何解决它吗?
答案 0 :(得分:3)
实际上,看看在编辑器中添加min
属性是否有效。基本上想要在最终的HTML中呈现:min="0"
。所以在你的代码中:
<div class="form-group">
<div class="col-md-2">
@Html.LabelFor(model => model.correlativo1, htmlAttributes: new { @class = "control-label" })
@Html.EditorFor(model => model.correlativo1, new { htmlAttributes = new { @class = "form-control left-border-none", @id = "idCorrelativo", @title = "especifique correlativo de licitación", @Value = ViewBag.correlativo, @min="0" } })
@Html.ValidationMessageFor(model => model.correlativo1, "", new { @class = "text-danger" })
</div>
</div>
您也可以使用它来添加max
属性(如果需要)
答案 1 :(得分:1)
@Html.EditorFor(model => model.correlativo1, new { htmlAttributes = new { @min = 0, @max = 9999, @class = "form-control left-border-none", @id = "idCorrelativo", @title = "especifique correlativo de licitación", @Value = ViewBag.correlativo } })
答案 2 :(得分:0)
我对MVC不太熟悉,但你可以考虑以下其中一种。
如果负值无效,那么您可能想要考虑使用unsigned int而不是int。
或..
更改属性的set
以防止值低于0.
public int correlativo1
{
get { return Correlativo1; }
set
{
if (value >= 0)
Correlativo1 = value;
else
Correlativo1 = 0;
}
}