使用asp.net mvc,您可以使用注释 [必需(errormessage =“这是必需的”)]
我该如何创建这样的东西:
[必需(errormessage =“ERRORXX”)]
所以我可以在数据库中查找这个ERRORXX是什么,并将其显示在我的表单上。现在我的表单显示ERRORXX。
我如何创造解决我问题的东西?
THX!
答案 0 :(得分:3)
只是一个想法:为什么不从resx file中提取错误消息?我认为这是做到这一点的常用方法。它甚至允许您轻松地本地化您的错误消息。
我认为通过使用资源文件(resx文件),以后更容易更改错误消息。例如,可以在Word Pad中打开和编辑resx文件。您无需使用用户名/密码访问数据库,查询等等。
Localizing ASP.NET MVC Validation
Globalizing ASP.NET MVC Client Validation
看看这里:
答案 1 :(得分:1)
要使用的默认路由是Resources。 但是,我理解你的痛苦:)我实现它的方式有点不寻常,但我会给你一个快速的破坏。 在我们的项目中,使用资源文件不是一个选项,因为它的方式对我们的目的来说太有限了,我现在不会厌烦你的细节! :) 根据它最基本的原则,我们将验证属性的errorMessage属性设置为某种“密钥”,然后使用它作为在CMS数据库中查找正确(语言)响应的方法,当验证失败时(在我们的例子中使用MVC,当我们更新模型并检查状态时 - 全部在Controller级别。)
这与使用资源的原理相同(通过指定“ErrorMessageResourceName”和“ErrorMessageResourceType”),但你可以用它做你想做的事。
为了清楚起见,我们最初使用我们自己的东西扩展了RequiredAttribute(作为一个示例),包括输入正确命名的参数以允许我们稍后从数据库中检索合理的CMS值。为了更清楚,我们使用MVC和自定义HtmlHelpers来渲染我们自己的ValidationControls,这最终消耗了我们自定义注释中的自定义值等等 - 这些都不会影响这里的愚蠢原则,这只是为了使用“errorMessage”或类似的东西,作为从您想要的位置查找实际消息的方式,以及您想要的时间。
答案 2 :(得分:0)
我认为你的意思是你想要读取/使用给定属性的属性声明吗?
如果是这样,您可以创建自己的RequiredAttribute类(以允许根据需要添加新的或更合适的属性)。请参阅:Attributes Tutorial