如何验证非模型属性?

Jos*_*ank 3 validation asp.net-mvc asp.net-mvc-3

在我的应用程序中,我基于运行时数据动态呈现UI.有一个模型,但它没有编译属性.相反,我正在检查数据库并使用这样的帮助器渲染多个字段:

@Html.TextBox("name", RunTimeValue)
Run Code Online (Sandbox Code Playgroud)

现在我想在这些字段中包含验证,但我看不出如何做到这一点.自定义MetadataProvider似乎不起作用,因为这仍然期望模型具有属性,而提供者提供属性.但是我的模型属性直到运行时才存在.我也不能用,例如,EditorFor因为这个原因.那么如何在这种情况下注入验证(客户端和服务器)?

Jeo*_*uan 5

如果您启用了不显眼的验证,则可以通过执行此操作来作弊

@Html.TextBox("name", RunTimeValue, new Dictionary<string, object> { { "data-val", "true" }, { "data-val-required", "The name is required" } })
Run Code Online (Sandbox Code Playgroud)

开箱即用的其他可能的数据值是data-val-regex(具有data-val-regex-pattern),data-val-range(具有data-val-range-min和data-val-range-max) ),data-val-number和其他一些我没用过的.