无论您将 HTML 存储在何处,验证都是在客户端完成的。关于如何使用虚拟路径提供程序将您的视图存储在其他地方 (DB) 的各种帖子,然后验证应该仍然可以正常工作。我想我错过了为什么它不适合你,所以我不得不想象你没有使用路径提供程序来查找你的视图。
编辑
似乎您想将消息注入 Div。除非您在路径提供程序中使用一些魔法,否则这不会自动发生。在视图中使用您自己的辅助方法以避免黑客攻击,或者只使用默认提供的方法。如果您真的想这样做,请在您的控件中呈现您的视图并搜索要替换的 Div 模式。
自定义 ValidationForMessage 帮助器删除 css 元素
注意达林的方法
var 表达式 = ExpressionHelper.GetExpressionText(ex);
var modelName = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(表达式);
var modelState = htmlHelper.ViewData.ModelState[modelName];
如果无法访问控制器中的 ViewContext,您只能为您的视图呈现 html。但是,在您的视图中的某个地方(据我所知)您需要一个辅助方法来将您的错误集合粘贴到 ViewData 中。
您的虚拟路径提供程序可能必须将此辅助方法注入您的视图文本中,以便 Razor 解析它。实际上 - 呃。这可能会容易得多。您的提供者可能只需从数据库中读取您的 html,找到 div,然后将 @Html.ValidationSummary 注入该 div。我相信这会奏效。为什么不把验证摘要放在那里,但如果它最终还是会出现(基本上)