c# - 隐藏的 int 属性验证

标签 c# .net asp.net-mvc validation

我正在尝试验证隐藏的整数属性,你能提出更好的方法吗

public class Model
{
        [Display(Name="Theme"),Required(ErrorMessage="Please choose your theme")]
        public int ThemeId { get; set; }
}

在 View 中

@Html.Hidden(m=>m.ThemeId)

这个输出<input type="hidden" bbla bla value="0"/>

问题是当前这个字段是有效的,因为 0 是 int 属性的默认值,所以属性中每个必需的默认值都是有效的。所以我必须让它无效。

我的解决方案是

只需使用 Range(1,int.MaxValue)该属性的属性。

我只是想知道这是不是解决这个问题的最佳方法。如果不能,请指出更好的解决方案。

最佳答案

我遇到了同样的问题,但没有想出更好的解决方案。

这完全正确,因为您说的是此属性的 范围是1..MaxInt

我能看到的唯一其他解决方案是使其成为可为空的整数,然后测试该值是否不为空。但是,这将包括零值和负值,因此您仍然需要检查它是否为正整数。

关于c# - 隐藏的 int 属性验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7538848/

相关文章:

c# - Swapchain.Present() 花费的时间太长,导致滞后

时间:2019-03-24 标签:c#datetimeformat(yyyy-mm-ddT00 :00:00) for google chart date

c# - 如何解析文本文件并将结果写入 xls 文件?

c# - 在编写多线程代码之前需要了解哪些重要的线程 API 调用?

c# - 在将字符串添加到 XML 之前对其进行清理吗?

java - Java 8 中 LINQ 的等价物

.net - Windows 更新导致 MVC3 和 MVC4 停止工作

c# - Office 365 与 Asp.net Web 应用程序(MVC 应用程序)的集成?

asp.net-mvc - ASP MVC 4 Web Api 包装我的 json 结果

javascript - 在 Ajax 调用后重定向到另一个页面?