asp.net-mvc - 将 ViewData\ModelState 导出到子操作

标签 asp.net-mvc asp.net-mvc-3

正如主题所说,这是一个坏主意吗?如果是这样,为什么?

目前,如果您从 @Html.Acion 内部呈现一些输入字段,则验证错误不会显示给用户,因为当 @Html.Action 参与时(在其上下文中)ModelState 被清除。

那么它周围的最佳模式是什么?

最佳答案

您可以通过 ControllerContext.ParentActionViewContext 访问父上下文或 ViewContext.ParentActionViewContext (详情 here )但我认为有更好的解决方案。

当您不想使用独立于当前 Controller 操作和 View 的可用数据(例如用户欢迎标签、导航栏等)污染所有 View 模型时,子操作是一个不错的选择。

对于其他重用场景,如常见输入字段,部分 View 是更好的方法。

但是,如果您提供有关当前情况的更多详细信息,我会尝试提出更具体的解决方案。

关于asp.net-mvc - 将 ViewData\ModelState 导出到子操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7039791/

相关文章:

c# - Asp.net core 2.0 Angular 模板 : add identity and authentication

c# - 401 未经授权,即使在 FormsAuthentication.SetAuthCookie() 之后

c# - 如何使用 'chosen.js' 插件在 MVC 3 中实现多选

c# - 使用 MVC3 将共享项(如菜单)的逻辑放在哪里?

asp.net-mvc-3 - 在 ajax 回调后设置选择列表中的选定项目

asp.net-mvc - SimpleMembershipProvider 在 WebSecurity.SignOut 之后不会销毁 session

html - site.css 中的 CSS 不适用于 asp.net 布局中的 <div id>

asp.net-mvc - 为什么基于 Action 的 Web 框架占主导地位?

asp.net-mvc - 如何在 Asp.net MVC 3 中使用 LIstBoxFor 和 MultiSelectList 生成的多选列表框上设置名称属性?

javascript - 获得对 <canvas> 的关注