MVC - 动态加载部分视图

2024-01-06

我试图通过传递我想要的部分视图的路径列表,然后在每个视图上调用 RenderPartial 来将部分视图动态加载到视图中。这似乎可以解决问题。当我尝试将模型传递到局部视图时,问题就出现了。由于我动态加载它们,因此我不确切知道要为特定的部分视图传递哪个模型。我不想填充每个可能的对象,并且我正在考虑使用反射和每个部分视图的配置查找来动态加载模型。我还考虑添加一个 ActionFilter,它会自动为我填充正确的模型值,但即使这个实现也必须使用 Reflection。有人还有其他建议吗?

我怀念在 MVC 中看不到的常规 ASP.NET 用户控件的一件事。用户控件封装了自己的数据检索逻辑,而在 MVC 中,主控制器需要了解它。这意味着如果我要为另一个控制器使用部分视图,该控制器还必须知道如何获取该部分视图的模型。我在这里错过了什么吗?谢谢。


如果您希望能够执行您所描述的操作,您可能有兴趣阅读Html.RenderAction() http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/。这在许多情况下很有用,但不是“纯粹的”MVC(也许是实用的 MVC)。

我和你有类似的情况,我使用部分视图加载不同的搜索屏幕(搜索提交按钮是相同的),只是表单字段不同。

我按照以下方式进行。在公共基类控制器中,我有通用类型参数,我将其传递给视图模型对象(SearchObject 是对象类型)。

public abstract class SampleController<T>  : Controller where T : new()
public virtual ActionResult SearchForDocuments()
        {
            searchModel.SearchObject = // Create type of T;
            // Some more code
            return View("SomeView", searchModel);
        }

然后我有一个强类型视图,它将 SearchObject 传递到部分视图。

 <% Html.RenderPartial(@"../Search/SearchCriteriaTemplates/" + /*Specific view name*/, Model.SearchObject); %>

然后,分部视图是强类型的,并且知道如何处理强类型模型。

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

MVC - 动态加载部分视图 的相关文章

  • Owin 声明 - 添加多个 ClaimTypes.Role

    我有一个应用程序 可以在其中为用户分配以下角色 超级管理员 Admin User 一个用户可能分配了两个或多个角色 例如 超级管理员和用户 我的应用程序使用声明 因此我也想通过声明来验证用户角色 喜欢 Authorize Roles Adm
  • 如何使自定义错误页面在 ASP.NET MVC 4 中工作

    我想要显示 500 404 和 403 的自定义错误页面 这是我所做的 在 web config 中启用自定义错误 如下所示
  • 从 .Net MVC 视图获取 HTML,而不在浏览器中实际渲染视图?

    我的控制器中有一个 ActionResult 我想从中发送 HTML 电子邮件 该电子邮件的正文是由视图生成的 我可以在传递模型时获取视图的结果并避免将其发送到浏览器 而不是在控制器中使用 2 个 actionresults 方法吗 Mvc
  • 如何将 Orchard CMS 与当前的 MVC2 应用程序集成?

    对于我的项目 客户端有一个现有的 ASP NET MVC 2 Web 应用程序 该应用程序具有产品目录和购物车功能 客户正在重新设计他们的网站 并希望使用 Orchard 来维护他们的内容页面 例如主页 关于 服务等 他们希望尽可能多地使用
  • 带有 HttpContext 的 ASP.NET MVC 单元测试控制器

    我正在尝试为我的一个控制器编写一个单元测试 以验证视图是否正确返回 但该控制器有一个访问 HttpContext Current Session 的基本控制器 每次我创建控制器的新实例时 都会调用 basecontroller 构造函数 并
  • ASP.NET MVC 子操作的路由匹配

    子动作的路由匹配方法与普通动作有什么不同吗 换句话说 子操作是否有一些自动生成的 url 来进行与父操作类似的匹配 父级或子级动作处理没有区别 任何操作都遵循您在中设置的相同路线定义Application Start 这意味着父母的行为以及
  • 阻止未确认电子邮件的用户使用 Identity 2 登录 ASP.Net MVC

    在 Microsoft Identity 2 中 用户可以确认我从以下位置下载了 Identity 2 示例项目的电子邮件地址here https www nuget org packages Microsoft AspNet Identi
  • Visual Studio 智能感知搞砸了

    所以我是 MVC4 和 C 的新手 我已经设计这个网站大约两周了 智能感知没有任何问题 两天来 Visual studio 告诉我 Viewbag 和其他 命令不是我的项目的一部分 我可能错过了一些东西 或者它告诉我 Viewbag 在当前
  • 缺少添加控制器/视图的上下文菜单

    我已将 ASP NET MVC 4 集成到现有的 asp net 网站中 两者都工作正常 但我没有看到任何菜单 快捷方式来在 Visual Studio IDE 中创建控制器 视图 这些仅适用于 ASP NET MVC 模板吗 这些仅适用于
  • Ajax 表单从 Jquery 对话框内重定向页面

    我在部分视图中有一个 jquery 对话框 model JQueryDialogPoc Models FeedBack using Ajax BeginForm GiveFeedback Home null new AjaxOptions
  • Asp.net MVC 路由 - 防止通过约束路由到 XML 文件

    我正在尝试找到一种方法来阻止用户访问特定的 xml 文件 我尝试过做 routes MapRoute SiteMap SiteMap siteMap xml new new isLocal new LocalHostRouteConstra
  • 如何更改jqGrid的主题?

    我正在寻找更改当前版本的 jqGrid 主题的方法 我最近开始在 ASP Net MVC 2 应用程序中使用 jqGrid 并下载一些演示解决方案 项目 我尝试通过更改主题 ui javascript 来更改网格的主题 但这对我不起作用 看
  • 在 C# mvc 代码中进行实时搜索后,如何用值更新无序列表?

    我想在文本框中输入内容时进行实时搜索来过滤结果 有一个 html 无序列表 在页面加载时从模型中填充 这些是我在搜索时要过滤的项目 问题是如何使用搜索值更新 ul cshtml页面 div div
  • 从 MVC 控制器调用 Web API

    我的 MVC 5 项目解决方案中有一个 Web API 控制器 WebAPI 有一个方法可以将特定文件夹中的所有文件作为 Json 列表返回 name file1 zip path c 从我的 HomeController 我想调用这个方法
  • 发布时出错:System.DirectoryServices.DirectoryServicesCOMException

    我在我的 asp net MVC 解决方案中使用 AD 身份验证 它在本地服务器中工作 但是当我发布它时 我收到错误 System DirectoryServices DirectoryServicesCOMException 发生操作错误
  • orchard cms路由问题

    我创建了一些自定义内容类型 其中包括路线部分 以便我的内容管理员可以编辑项目的别名 我没有运气配置一条路线 使我自己的控制器能够为这些项目的请求提供服务 核心 Routable 模块中到 ItemController 的路径的路由优先级为
  • asp.net mvc 主要细节

    我想使用 ASP NET MVC Entity Framework 创建一个用于订单输入的网页 此页面包含订单和订单输入信息 对于每个订单 我可以有多个订单详细信息 如果您知道如何使用 ASP NET MVC Entity Framewor
  • 如何以一种形式发布两个或多个模型?

    我正在为一个项目开发互联网课程计划应用程序 该课程计划是根据以下模型构建的 使用数据库优先方法中的实体框架生成 public partial class Subject public int Id get set public string
  • 从 MVC 控制器操作调用 javascript

    我可以调用 javascript 函数吗MVC 控制器动作 不是来自视图页面 并获取返回值 如何 我需要向服务器发出请求来自代码 cs 像这里一样使用 javascript 但这是aspx页面 function getInitData va
  • ASP.NET MVC ActionFilterAttribute 在模型绑定之前注入值

    我想创建一个自定义操作过滤器属性 该属性在模型绑定期间可访问的 HttpContext 项中添加一个值 我尝试将其添加到 OnActionExecuting 中 但似乎模型绑定是在过滤器之前执行的 你知道我该怎么做吗 也许模型绑定器中有一个

随机推荐