如何使用 EF 和数据注释使输入字段仅允许数字?

2024-04-29

我试图弄清楚是否有一种方法可以确保使用数据注释和实体框架仅允许数字输入。

我正在使用以下代码

[Required]
[DisplayName("Client No")]
[Column("client_no", TypeName = "smallint")]
public virtual Int16 Number { get; set; }

我希望使用数字类来显示它。

在一个地方我使用以下内容

<input type="number" name="searchClientNo" class="numericOnly" /><br />

但在报名表中我使用的是

@Html.EditorFor(m => m.Number, EditorTemplate.TextBox)

我有一个带有以下代码的定制 EditorFor

<div class="editor-label">
    @Html.Label((ViewData.ModelMetadata.DisplayName??ViewData.ModelMetadata.PropertyName),
        new Dictionary<string, object>
            {
                { "for", ViewData.ModelMetadata.PropertyName }
            })
</div>
<div class="editor-field">
    @Html.TextBox("", (object)Model,
        new Dictionary<string, object>
            {
                { "id", ViewData.ModelMetadata.PropertyName },
                { "name", ViewData.ModelMetadata.PropertyName },
                { "class", "text-box single-line"},
                { "data-bind", "value: " + ViewData.ModelMetadata.PropertyName },
            })
    @Html.ValidationMessage(ViewData.ModelMetadata.PropertyName,
        new Dictionary<string, object>
            {
                { "data-valmsg-for", ViewData.ModelMetadata.PropertyName }
            })
</div>

我想知道如何保留此代码而不进行更改,但仍使用仅数字文本框。我需要使用 UIHint 吗?

或者,是否有可能使我现有的 EditorFor 变得更智能?

我找到了这篇博文http://robseder.wordpress.com/2012/06/01/uihint-displaytemplates-and-editortemplates-in-mvc/ http://robseder.wordpress.com/2012/06/01/uihint-displaytemplates-and-editortemplates-in-mvc/但我已经在使用自定义 EditorFor。我可能需要添加一个新类型,例如 EditorTemplate.NumericTextBox 并添加另一个编辑器?这听起来似乎可行,我明天要尝试一下......

预先非常感谢。


您可以编写自定义编辑器模板~/Views/Shared/EditorTemplates/NumberTemplate.cshtml:

@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { type = "number" })

然后用以下内容装饰您的视图模型属性UIHint属性:

[Required]
[DisplayName("Client No")]
[Column("client_no", TypeName = "smallint")]
[UIHint("NumberTemplate")]
public virtual Int16 Number { get; set; }

在你的视野中:

@Html.EditorFor(x => x.Number)

或者如果您不想使用UIHint您可以定义视图模型上的属性EditorTemplate.NumericTextBox = "NumberTemplate"进而:

@Html.EditorFor(m => m.Number, EditorTemplate.NumericTextBox)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 EF 和数据注释使输入字段仅允许数字? 的相关文章

  • 为什么这个 Web api 控制器不并发?

    我有一个 Web API 控制器 里面有以下方法 public string Tester Thread Sleep 2000 return OK 当我调用它 10 次 使用 Fiddler 时 我预计所有 10 次调用都会在大约 2 秒后
  • 返回视图作为 JSON 对象的一部分

    我有一个应用程序只加载一次完整视图 我这样做的原因并不重要 重要的是 其余内容只会以部分视图的形式返回 除了一些内容之外 我还有一些 JSON 对象 我想通过每个 AJAX 请求在服务器之间来回传递 有没有办法返回一个 JSON 对象 并将
  • 实体框架:数据库上下文可以在不同模式之间拥有外键吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们有一个具有多个模式的数据库 公司架构师希望每个架构都有实体框架 DbContext 此外 不同模式之间还存在外键关系 今天在搭建架
  • 如何将包含动态内容的捆绑包添加到 ASP.NET Web 优化

    我正在使用 SignalR 它映射到虚拟路径 signalr 上的 asp net 应用程序 SignalR 在应用程序上动态创建 JavaScript 代理集线器 以虚拟路径 signalr hubs 开始 所以网址 http myapp
  • mvc 4下拉默认值选择

    我想在下拉列表中选择默认值 其中policyId 7 但它没有选择该值 我做错了什么 控制器 var pm new ManagerClass IEnumerable
  • 实体创建无用的 id 字段

    我有一个CrudRepository与两个实体 Problem 特征实体总是创建一个附加的id数据库中的字段但未选择正确的characteristic id要生成的字段JSON machine entity machine id name
  • 如何使用 EF Code First 解释枚举类型

    这是一个模型 Public class Person Key Public int PersonId get set Public int Age get set Public ColorEnum FavoriteColor get set
  • .NET ServiceModel.Syndicate - 更改 RSS 源的编码

    我正在尝试解决我在以下位置生成的所有 RSS 源的错误http captainobvio us http captainobvio us在 Internet Explorer 版本 8 和 9 中产生以下错误 进给代码错误 从当前切换 编码
  • 当视图模型类型为包含超过 4 个项目的元组时,Asp.net mvc 2 .net 4.0 出现错误

    当我在 Asp net mvc 2 net 4 0 中使用模型类型 Tuple 创建强类型视图时 当 Tuple 具有超过 4 个项目时 我会收到错误 示例1 视图类型是Tuple
  • 使用ViewData或不使用ViewData

    我一直在阅读 Professional ASP NET MVC 1 0 一书 并阅读其他有关从控制器到视图中使用 ViewModel 而不是 ViewData 的资料 但后来我看到很多 ViewData 的例子都被用在一些困难的场景中 除了
  • 为什么这条路线不匹配

    我在获取匹配路线时遇到一些问题 我使用 base 32 编码的 int 作为 Web 应用程序中幻灯片的短链接 每个幻灯片有 5 个不同的版本 我使用首字母来区分每个版本 路由始终匹配 除非 Base 32 编码 int 的第一个字符与指定
  • 盒式捆绑包与 MVC4 捆绑包

    我目前正在开发一个原型 ASP NET MVC 3 解决方案 该解决方案将用作多个项目重写的基础 来自 Web 表单 我的目标之一是跨应用程序实现一些脚本管理 而不是我们目前没有的目标 MVC 3有一个缺陷恕我直言 如果您需要在部分视图或模
  • ASP.NET MVC2:“System.MissingMethodException:没有为此对象定义无参数构造函数。”

    我目前正在尝试修改默认 MVC 项目的注册组件 以适应我的项目 为此 我修改了 RegisterModel Register aspx 和 AccountController 我可以很好地查看寄存器视图 但是当我提交时 我在标题中收到错误
  • 调用泛型类的方法

    这是上下文 我尝试编写一个映射器来动态地将域模型对象转换为 ViewModel 对象 我遇到的问题是 当我尝试通过反射调用泛型类的方法时 出现此错误 System InvalidOperationException 无法对 Contains
  • OnModelCreating 从未被调用

    我开始使用实体框架 问题是我的 OnModelCreating 方法从未被调用 这是我的上下文类 public class TestContext DbContext public TestContext base name TestDBC
  • 如何在VS2010中获取T4来迭代类的属性

    我使用的是 Visual Studio 2010 并且安装了有形的 T4EditorPlusModellingTools 我只是在玩T4 以前从未接触过它 我想做的是查看项目中的一个类 并写出每个属性 谁能给我关于如何构建 tt 文件的绝对
  • 如何检查DBContext是否已释放?

    我想与从外部 继承类 调用的另一个方法共享数据库上下文 而不创建新的上下文 除非正在释放它 我想检查上下文是否已处理 以便我可以创建新的上下文 这是休息 api 有多个实体的批量上传 我想共享事务 因此如果一个实体失败 它将不会提交到数据库
  • 每个其他请求 JWT 验证都会失败,并显示“idx10503 签名验证失败”。令牌没有孩子'

    所以整个 JWT 签名和验证对我来说还是很新鲜的 我现在有一个 C 应用程序 它通过使用 JWT 保护的 API 请求一些信息 奇怪的是 所有其他请求都失败了 所以第一个请求就像一个魅力 我收到了我期望的信息和回复 JWT 验证成功 我在它
  • ASP.NET MVC 防伪造令牌不安全

    在没有 ssl 的情况下向服务器发出请求时 我实际上可以看到 MVC3 框架以纯文本形式生成的验证令牌密钥 该密钥存储在名为 RequestVerificationToken Lw 的 cookie 中 在混合安全环境中 实际上可以在向非
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器

随机推荐

  • 观察嵌套对象的属性

    小提琴示例 http emberjs jsbin com aviyUnA 9 edit html js 输出 http emberjs jsbin com aviyUnA 9 edit html js output 这是我的模型 name
  • 使用参与者模型进行基于时间的模拟

    我们有一个单线程应用程序 可以模拟数十万个对象随着时间的推移与共享内存模型的交互 显然 它无法在多 CPU 硬件上进行扩展 在阅读了一些有关基于代理的建模和函数式编程 参与者模型的内容后 我正在考虑使用消息传递范例进行重写 这个想法非常简单
  • 为开发/QA/产品配置 Java EE 6

    我有一个使用 Maven 构建的 Java EE 6 应用程序 在 NetBeans 7 中编写代码并部署在 GlassFish 3 1 2 上 当我接近完成时 我发现自己正在部署演示版本 问题是我没有任何非常简单的方法来构建不同的环境 例
  • ModemManager:mmcli 获取信号强度

    我无法检索 Sierre Wireless MC7304 上的信号强度 另外通过 mmcli 发送 AT 命令似乎不起作用 sudo mmcli m org freedesktop ModemManager1 Modem 0 signal
  • jquery 切换兄弟元素的可见性

    我在一个页面上有几个 div 每个 div 都有一个标题 我可以单击该标题来切换相应 div 的可见性 div 设置为display none默认情况下 我用过 ids在每个 div 的点击功能中 但是因为我在同一页面上有多个 div 我想
  • Typescript:声明与另一个变量具有相同类型的变量

    有没有办法用另一个变量的类型来声明一个变量 例如 我声明一个具有某种类型的类成员 然后我想在同一类型的函数中声明另一个变量 但我不想修改原来的声明 也不想重复它 看起来你应该能够做类似的事情 class Foo bar key string
  • 如何从扩展服务工作人员创建网络工作人员

    我将首先解释我想要实现的目标 我想创建一个扩展程序 可以在不同 chrome 窗口上的选项卡之间切换 并显示每个选项卡 X 时间 我发现了一个类似的扩展 但它是使用manifest V2完成的 并且不支持多个窗口 我想通过为每个窗口创建一个
  • Nestjs拦截并修改传出的http请求

    所以我可能错过了一些东西或者做错了一些事情 我有一个 NestJS 应用程序正在尝试向外部 API 发出 http 请求 我希望能够拦截此传出请求并在执行之前修改其标头 我尝试使用拦截器 但没有成功 传入的 http 请求被拦截 但传出的请
  • 由于权限被拒绝,无法绑定到某些端口

    在过去 3 个月左右的时间里 我遇到了随机错误 无法绑定身份服务器在本地开发工作站上运行的特定端口 起初我以为是我的机器坏了 所以我重置了所有东西 这在两个月内解决了这个问题 现在它又回来了 与此同时 其他开发人员也看到了同样的问题 我们所
  • Eclipse 调试器 - 跳转到或仅显示挂起的线程

    我有一个带有很多线程的 Java 应用程序 在调试时 当一个线程中的执行被断点停止时 在所有线程之间滚动以查找挂起的线程是非常烦人的 有没有办法 按钮 快捷键等 跳转到挂起的线程 或者更好 隐藏所有未挂起的线程 我同意这很烦人 而且答案非常
  • Python Pandas 检查某个值在同一天内是否出现多次

    我有一个 Pandas 数据框 如下所示 我想做的是检查一个电台是否有变量yyy以及同一天的任何其他变量 如station1 如果这是真的 我需要删除包含的整行yyy 目前我正在使用iterrows 并循环搜索该变量出现的日期 将变量更改为
  • django redis celery 和 celerybeats 的正确设置

    我一直在尝试设置 django celery redis celery beats 但它给我带来了麻烦 文档非常简单 但是当我运行 django 服务器 redis celery 和 celerybeats 时 没有打印或记录任何内容 我所
  • 如何使用ggplot2在地图上添加经度和纬度线?

    我现在正在使用绘制加拿大地图ggplot2 因为默认的投影方式是 aea 阿尔伯斯等积 所以地图上的经度和纬度都是直线 我想知道如何在地图上以 110W 100W 90W 和 50N 60N 70N 的形式显示经度和纬度 它们应该是曲线 多
  • 如何使用rest-api执行spring cloud任务

    我知道可以安排云任务 也可以使用要执行的流进行配置 作为一名开发人员 我想使用 Rest api 执行我的 Spring Cloud 任务 以便我可以按需执行任务 基本上我有一个工作流程管理系统 我们正在使用 control m 代理 所以
  • 如何使用 Gmail API、OAuth2 for Apps 脚本和域范围委派为 G Suite 域中的用户设置电子邮件签名

    这是我之前发布的问题 答案的后续内容 如何使用 Google 电子邮件设置 API 和 OAuth2 for Apps 脚本库为 Google Apps 域中的用户设置电子邮件签名 https stackoverflow com quest
  • 为什么模拟“open”并返回 FileNotFoundError 会引发 AttributeError: __exit__?

    通过模拟测试open with a FileNotFoundError raises AttributeError exit 为什么会发生这种情况以及我可以采取什么措施来解决它 以下代码打开一个简单的文本文件 如果文件丢失 它会生成一个默认
  • 直接从令牌获取 JWT 声明,ASP Net Core 2.1

    我正在开发 ASP Net Core 2 1 Web API 我已经在我的项目中成功实施了 JWT 有了授权一切都可以正常工作 通常 当我需要用户声明时 我知道我可以这样获取它们 例如电子邮件声明 var claimsIdentity Us
  • 解决加载解决方案时 Visual Studio 2008 崩溃的问题

    我已经通过 SVN 下载了 SubSonic 的源代码 当我尝试在 Visual Studio 2008 中打开该项目时 它会转换解决方案 加载所有项目 然后消失 并且不会出现错误消息 解决方案的后续加载也会执行相同的操作 如果我运行 de
  • 将度/分/秒转换为十进制坐标

    在我的代码的一部分中 我将十进制坐标转换为度 分 秒 然后使用 double coord 59 345235 int sec int Math Round coord 3600 int deg sec 3600 sec Math Abs s
  • 如何使用 EF 和数据注释使输入字段仅允许数字?

    我试图弄清楚是否有一种方法可以确保使用数据注释和实体框架仅允许数字输入 我正在使用以下代码 Required DisplayName Client No Column client no TypeName smallint public v