如何为 ASP.NET MVC2 母版页提供独立于控制器的模型

2024-01-05

我在 ASP.NET MVC2 下使用强类型视图和 autofac 进行依赖注入,并且尝试通过依赖注入获取通用动态标头。 IE。我希望这种情况发生,即使视图已经存在,也不必离开该内容,我希望避免容器的静态发现和手动解析,但我找不到一种方法来轻松注入主视图或包含的部分视图通过 ctor 或属性注入在 master 中。

我无法想象这是一个不常见的任务,但我在方法方面所能找到的就是控制器子类化以将数据填充到无类型的 ViewData 中,子类化 ViewModels 以将主数据填充到模型中,或者静态解析,所有这些我都会宁愿不使用。我在忽略什么?

EDIT:正如已经指出的那样,DI 进入母版页正在与框架作斗争。所以我的问题框架很糟糕:我并不真正关心母版页的 DI,但我在网站的镶边中有一个动态元素,即母版页。为其提供模型不应该是使用该主机的每个控制器的责任,因为它是请求上下文,而不是特定于控制器上下文。我完全承认直接注入母版页是不合适的。如果我可以注册一个单独的主控制器来另外调用,那就更好了。那可能吗?鉴于为主机提供独立于控制器的模型的任务,框架合适的方法是什么?或者 MVC 中的共享内容是否要求每个控制器都必须了解该内容?


你可以使用儿童动作 http://haacked.com/archive/2009/11/18/aspnetmvc2-render-action.aspx.

控制器:

public class MyHeaderController: Controller
{
    private readony IRepository _repository;
    public MyHeaderController(IRepository repository)
    {
        _repository = repository;
    }

    [ChildActionOnly]
    public ActionResult Index() 
    {
        var model = _repository.GetSomeModel();
        return PartialView(model);
    }
}

并且在您的母版页中的某个位置包含它:

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

如何为 ASP.NET MVC2 母版页提供独立于控制器的模型 的相关文章

  • 如何在 Caliburn.Micro 中使用 Conductor 的依赖注入

    我有时用Caliburn Micro http caliburnmicro com创建应用程序 使用最简单的 BootStrapper 我可以像这样使用 IoC 容器 SimpleContainer private SimpleContai
  • 实体框架:在运行时更改连接字符串

    假设有一个 ASP NET MVC 应用程序使用 Entity Framework 6 和代码优先方法以及 StructureMap 作为 IoC 它还使用工作单元模式 域类 public class Product public int
  • 从另一个命令 Handle() 方法中调用命令

    嗨 我正在使用简易注射器 https simpleinjector orgDI 库并一直在关注一些关于围绕命令模式设计的架构模型的非常有趣的材料 同时 在我的架构的命令方面 https cuttingedge it blogs steven
  • Spring 可以理解 @Inject 替换 Weld 作为 JSR-299 实现吗?

    我从几个网页中注意到 Spring 3 0 显然支持来自 JSR 330 的 Inject 由于我们确实希望在 Web 应用程序和独立应用程序的库中使用 JSR 299 语法进行依赖项注入 并且有 Weld 的替代方案 因此如果 Sprin
  • 如何引用 ASP.NET MVC 2 Views 文件夹中的 javascript 文件?

    我正在尝试适应企业标准 其中所有页面级 javascript 都包含在外部文件中 而不包含在 ASPX 或 ASCX 文件中 使用 ASP NET MVC 2 我想知道如何引用相对于视图的脚本文件 js 换句话说 我不想让应用程序中存在的所
  • ASP.NET Core中间件如何进行DI?

    我正在尝试将依赖项注入到我的中间件构造函数中 如下所示 public class CreateCompanyMiddleware private readonly RequestDelegate next private readonly
  • 关于存储库的领域驱动设计问题

    我正在尝试实现 DDD 因此我创建了以下类 用户 域模型 UserRepository 管理对象的中央工厂 UserMapper UserDbTable 映射应用程序功能并提供 CRUD 实现的映射器 我的第一个问题是 当模型需要与持久层通
  • Windows 共享主机 - 自定义计划任务

    我有一个 Windows 共享主机 我需要每天运行一些预定的 C 可执行文件来创建站点地图 发送新闻通讯等 提供商告诉我 出于安全原因 我无法运行可执行文件 我能做什么 提供商建议我购买 VPS 但认为仅仅为了运行一些计划任务而花更多钱是没
  • 如何从用户控件引用母版页?

    我正在寻找一种方法 最好 从使用母版页的内容页中找到的用户控件强类型母版页 遗憾的是 您不能在用户控件中使用它 我试图从用户控件访问母版页的属性 而不必将该属性从母版页传递到内容页再传递给用户控件 因为多个内容页使用相同的用户控件 一处改变
  • ASP.NET MVC 2 强类型 htmlhelper、索引

    public class Foo public bool Checked get set View
  • Xamarin、Autofac、NavigationService 和 BeginLifetimeScope

    关于带有 autofac 的生命周期范围以及何时在 xamarin 应用程序中使用它们的初学者问题 正如这篇文章中提到的 https nblumhardt com 2011 01 an autofac lifetime primer htt
  • 如何动态实例化服务?

    我有一个Utils服务很重 我想在特定的用户操作中使用其中定义的一些函数 由于这项服务很重 我想延迟实例化它 在用户操作时 我该如何实现这一目标 Service module service Utils function dep1 dep2
  • MVC 2.0 电子商店中类别名称的动态路由

    我目前正在使用 ASP NET MVC 2 0 开发一家电子商店 我已经启动并运行了大部分内容 但一直困扰我的部分是路由 我要这个 http mystore somewhere my category 1 http mystore some
  • 将 xml 发送到 ASP.NET MVC 操作方法参数

    是否可以将 POX 普通旧 xml 发送到操作中 并让该操作为您执行到对象的模型绑定 我见过使用 JSON 完成此操作 但没有看到任何人使用 xml 完成此操作 考虑做类似的事情 但是使用 JSON 我想你也可以使用动作过滤器属性 http
  • MVC 3 将实体作为接口传递

    我目前正在开发一个 MVC 3 项目 使用 Ninject 作为我的 DI 业务对象存储在单独的程序集中 我遇到了控制器参数的问题 当回发 CRUD 操作时 我收到错误 无法创建接口实例 我知道您无法创建接口的实例 但似乎解决此问题的唯一方
  • 私有只读接口 - 它是多余的吗?

    我在我的项目中使用 IoC 和 DI 但是我想知道以下是否是一个好的做法 private readonly IMyService myservice 作为服务使用者的类内的字段 该字段在构造函数中设置 我确信我在某处见过这个并且我已经注意到
  • 何时使用接口,何时使用高阶函数?

    给定一个具有以下层的 ASP NET MVC 应用程序 UI 视图 CSS Javascript 等 控制器 服务 包含业务逻辑和数据访问 没有单独的数据访问层的原因是我正在使用 SQL 类型提供程序 以下代码可能不起作用 因为它只是原始草
  • 如何有效地测试action是否用属性(AuthorizeAttribute)修饰?

    我正在使用 MVC 并且有一种情况OnActionExecuting 我需要确定即将执行的Action方法是否用属性修饰 AuthorizeAttribute尤其 我不是问授权是否成功 失败 而是问该方法是否需要授权 对于非 MVC 人员
  • 在ConfigureServices中注入依赖

    在我的 ASP Net Core 应用程序中 我需要在以下位置注入一些依赖项 在我的例子中是一个存储库 ConfigureServices method 问题是该方法不允许使用多个参数来注入依赖项 该怎么办呢 这是我的代码 public v
  • .net 4.7 中的依赖注入?

    我对 DI 有哪些集成选项有点困惑 我发现它对于 net core 对于我的特定项目 来说非常简单 但我不需要构建跨平台应用程序 也看不到使用 core 的优势 但是 net 框架应用程序似乎仍然使用 Global asax 设置且没有 S

随机推荐

  • jQuery 获取

    这对某人来说可能很容易 var x p blah p div a href http bs serving sys com BurstingPipe adServer bs cn brd FlightID 2997227 Page PluI
  • IIS 托管的 wcf 返回空白页

    我有一个 wcf 应用程序 它有 Service1 svc 文件 在我指定的 web config 文件中 http localhost 2005 EmployeeService svc 作为端点 从 Visual Studio 单击 浏览
  • 如何在骡子中手动抛出肥皂故障

    我面临着一种情况 我们无法使用模式来验证传入的请求 基本上模式就在那里 但它接受请求中的任何字符串 wsdl 设计者有自己的理由这样做 以接受来自不同来源和灵活性的请求 但是 当收到请求时 我会验证请求包装器的子元素是否是我们所期望的 为此
  • 使用 ACTION_SEND 通过 Android 应用程序共享图像不起作用

    我一直在关注这个 Android 在 Facebook Twitter 邮件 ecc 上分享 https stackoverflow com questions 6814268 android share on facebook twitt
  • 在c#中创建AD用户

    我正在尝试使用以下代码创建一个新的 AD 用户 PrincipalContext ctx new PrincipalContext ContextType Domain Domain ou some ou dc Mydomain UserP
  • 如何用react-konva制作圆角垂直线?

    我需要用react konva制作圆角垂直线 使用现有的API可以实现吗 如果是 怎么办 我在 Line 类中使用了贝塞尔曲线 API 效果很好 现在我需要以某种方式将贝塞尔曲线修改为圆角垂直线 Sth like this 您可以通过多种方
  • 为什么 pandas 中的 .loc 切片包含 stop,这与典型的 python 切片相反?

    我正在对 pandas 数据框进行切片 并且似乎使用以下方法得到了意外的切片 loc 至少与 numpy 和普通 python 切片相比 请参阅下面的示例 gt gt gt import pandas as pd gt gt gt a pd
  • android OnkeyListener 与过滤器停止 onItemClicklistener 来自 DPAD

    This is my custom dialog layout 我想移动日期选择器并在其下方的网格中加载相应的项目 我可以通过过滤器执行它 如上所述here https stackoverflow com questions 3802887
  • WEB-INF 是否在 CLASSPATH 中?

    Is the WEB INF文件夹中的CLASSPATHJava Web 应用程序 我假设你指的是 WEB INF 目录在 Web 应用程序文件夹结构的根目录中 不 它不在类路径中 WEB INF classes虽然在类路径上 但 JAR
  • 在 UML 中对基于时间的属性和方法进行建模

    我想对一个在指定时间过去时发生的方法和一个随类和序列图消失的属性进行建模 情况是这样的 工人们正在工厂里使用机器工作 每台机器可供0 10名工人使用 每台机器都有一个修理期限 工人必须修理它 它还有一个时间限制 如果工人错过修理 机器就会爆
  • 什么属性控制 Spinner 下拉背景?

    我有一个创建的自定义主题这个发电机 http android holo colors com 它有一个我不喜欢的旋转器自定义样式 我想更改背景可绘制对象 但我似乎无法弄清楚哪个属性控制它 这就是主题版本的样子 这是使用 Holo Light
  • 给定引理和标记,如何逆向词形还原过程?

    一般来说 在自然语言处理中 我们想要得到一个token的引理 例如 我们可以使用 wordnet 词形还原将 eaten 映射到 eat python中有没有可以将引理反演为某种形式的工具 例如 给定目标形式 吃 我们将 去 映射到 消失
  • css:chrome 的 -moz-线性渐变 相当于什么

    我有类似的CSSbackground moz linear gradient center top 59a1d8 27247D repeat scroll 0 0 0f78c7 对于我的按钮来说 这对我来说在 mozilla 中很好 但在c
  • Spring 中 REST 控制器的异常处理程序

    我想处理异常 以便 URL 信息自动显示给客户端 是否有捷径可寻
  • Utf8Json根据标记字段反序列化为类型

    With Json NET Newtonsoft我已成功使用自定义合约反序列化器和 json 转换器来根据标签选择反序列化器 在下面的情况下 ev 总之我希望实现同样的目标Utf8Json 完整详细信息如下 Stocks TRADE ev
  • IntelliJ Scala 配置问题

    所以 我下载了 Scala 并配置了路径 我可以从终端运行 Scala 控制台 Scala 插件已安装并且 你好世界 正在运行 问题是 当我编写 hello world 程序时 object First def main args Arra
  • 使用 Hive、S3、EMR 和恢复分区加载数据

    SOLVED 请参阅下面的更新 2 了解此问题的 解决方案 在 s3 中 我有一些 log gz 文件存储在嵌套目录结构中 例如 s3 BUCKET y 2012 m 11 d 09 H 10 我正在尝试使用多级分区规范将它们加载到 Ela
  • 创建本地和实例对象时出现 java StackOverflowError

    大家好 有人可以解释一下为什么这段代码会给我 StackOverflowError 错误吗 如果您能解释 instanceObj 初始化并调用 ObjectTest 构造函数和 java lang Object 构造函数时发生的情况 我真的
  • 在python中将具有多个值的字典键映射到json

    我正在尝试将一个具有多个值的键的字典映射到 python 中 这是我得到的 import json list abe matt roscoe key name nodes nodes setdefault key list abe matt
  • 如何为 ASP.NET MVC2 母版页提供独立于控制器的模型

    我在 ASP NET MVC2 下使用强类型视图和 autofac 进行依赖注入 并且尝试通过依赖注入获取通用动态标头 IE 我希望这种情况发生 即使视图已经存在 也不必离开该内容 我希望避免容器的静态发现和手动解析 但我找不到一种方法来轻