ASP.NET MVC:如何从HtmlHelper实例获取程序集信息?

2024-01-12

我在与 MVC 应用程序程序集分开的程序集中有一个 HtmlHelper 扩展方法。在扩展方法中,我想获取 MVC 应用程序程序集的版本号。这可能吗?

调用程序集是剃刀视图动态程序集,因此没有帮助。 HtmlHelper 中是否嵌套有一些对象可以为我提供 MVC 应用程序程序集的版本号?我一直在探索HtmlHelper 类文档 http://msdn.microsoft.com/en-us/library/system.web.mvc.htmlhelper.aspx但到目前为止还没有找到解决我的问题的方法。

Thanks!


这是一件臭名昭著的邪恶事情 - 因为不幸的是没有一种具体可靠的方法可以做到这一点。

然而,由于它是一个 MVC 应用程序,因此它很可能有一个 Global.asax.cs - 因此它有一个本地定义的HttpApplication class.

从 html 帮助器中你可以得到这个:

public static string AppVersion(this HtmlHelper html)
{
  var appInstance = html.ViewContext.HttpContext.ApplicationInstance;
  //given that you should then be able to do 
  var assemblyVersion = appInstance.GetType().BaseType.Assembly.GetName().Version;
  //note the use of the BaseType - see note below
  return assemblyVersion.ToString();
}

Note

您可能想知道为什么代码使用BaseType应用程序实例的名称,而不仅仅是类型。这是因为 Global.asax.cs 文件是 MVC 应用程序的主要类型,但随后 Asp.Net 会动态编译另一个通过 Global.asax 继承的 HttpApplication 类型。

正如我之前所说;这适用于大多数 MVC 站点,因为按照惯例,它们都应该在 Global.asax.cs 文件中定义一个应用程序类(因为这就是项目的设置方式)。

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

ASP.NET MVC:如何从HtmlHelper实例获取程序集信息? 的相关文章

  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • 如何在单击按钮时重新绑定 igGrid igniteUI 控件中的数据?

    我在 ASP NET MVC3 应用程序中使用 Infragistics Ignite UI 控件 我有一个已绑定到 客户 数据的网格 工作正常 现在我有按钮了 单击后我会进行 ajax 调用 在控制器中 我编写了仅选择 客户 数据的一部分
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • 在高图表上绘制自定义线

    我最近一直在使用 highchart api 在网站上绘制一些数据 并且我需要能够添加自定义垂直 线 来象征正在发生的事情 例如新闻稿 我曾考虑过将列元素作为单独的系列添加到图表中 但这不太理想 如果有人有任何想法那就太好了 thanks
  • Symfony2/JmsDIExtraBundle 使用注释将存储库注入到服务中

    在我的项目中 我使用 JMSDIExtraBundle 注释 我的问题是 我如何告诉我的应用程序存储库应该是服务 这样我就可以使用注释将其注入到另一个服务中 我知道的唯一方法是使用 XML 文件将存储库定义为服务 但这是一个非常缓慢的过程
  • 如何操作facet_grid图的条带文本?

    我想知道如何操纵分面图中条带文本的大小 我的问题 类似于关于剧情标题的问题 https stackoverflow com questions 2631780 r ggplot2 can i set the plot title to wr
  • npm 安装错误 - 未检测到 Xcode 或 CLT 版本?

    在 处找不到 com apple pkg cltools executables 的收据 在 MacOS Catalina 的 VS Code bash 终端中为 Angular 9 项目运行 npm install 时引发上述错误 Pac
  • 列出与 Java 中的模式匹配的目录中的文件[重复]

    这个问题在这里已经有答案了 我正在寻找一种方法来获取与给定目录中的模式 首选正则表达式 匹配的文件列表 我在网上找到了一个使用apache的commons io包的教程 代码如下 Collection getAllFilesThatMatc
  • 在 C/C++ 中高效地在十六进制、二进制和十进制之间转换

    我有 3 种正整数的基本表示形式 十进制 无符号长变量 例如无符号长整型 NumDec 200 十六进制 字符串变量 例如字符串 NumHex C8 二进制 字符串变量 例如字符串 NumBin 11001000 我希望能够以最有效的方式在
  • 在开玩笑中模拟 window.sessionStorage 的最佳方法是什么

    下面是一个非常简单的笑话单元测试 运行它时 你会得到类似的错误 无法监视原始值 未定义给定 类型错误 无法读取未定义的属性 getItem 但根据最后两条评论这个帖子 https github com facebook jest issue
  • php echo 如果两个条件都成立

    实际的代码如下所示 if file exists filename echo player else echo something 但即使没有从 url 调用 id 它也会显示播放器 我需要这样的东西 check if filename e
  • UTF8 编码的字符串“Jalape\xc3\xb1o”(“Jalapeño”)是否包含 8 个或 9 个字符?

    根据作者 大卫 比兹利 直接写入原始 UTF 8 编码字符串 例如 Jalape xc3 xb1o 简单地生成一个九个字符的字符串 U 004A U 0061 U 006C U 0061 U 0070 U 0065 U 00C3 U 00B
  • 如何将最近打开的文档添加到 WPF 中的 OpenRecent 菜单项

    我开发了一个 Wpf 应用程序 它打开 doc 文件并执行一些操作 现在我想在菜单项中添加打开最近的功能 该功能显示最近打开的文档列表 现在有一个名为跳转列表的 wpf 类 但我不明白如何在我的应用程序中使用跳转列表 您可以使用显示最近类别
  • VB.NET 在数组中查找字符串[重复]

    这个问题在这里已经有答案了 我是 VB net 的新手 通常是 Python 或 Matlab 程序员 我已经开始使用 VB Net 进行编程 我正在努力引用数组中字符串的索引 而不通过 for 循环进行循环 如何在一行中找到数组中的条目
  • 从 setuid root C 程序调用脚本 - 脚本不以 root 身份运行

    我需要以 root 身份运行 bash 脚本 无密码 sudo 或 su 不可行 并且由于您无法在 Linux 中设置脚本 所以我考虑从可执行文件调用它并制作it setuid cat wrapper c int main void sys
  • 如何在 XAML 中引用当前对象

    我无法弄清楚如何在 XAML 文件中引用 XAML 文件定义的当前实例对象 我有一个转换器 我想将其作为参数对象发送到当前实例中 Binding Path
  • 在 ARM macOS 上,当显式 raise() 信号时,某些返回地址在堆栈上会出现乱码

    这是一个适用于 ARM macOS 的简单程序 它安装了一个信号处理程序SIGSEGV 然后生成一个 在信号处理函数中 使用通常的帧指针追踪算法遍历堆栈 然后打印出符号化版本 include
  • Quartz.Net cron 触发器每 45 分钟安排一次作业

    我正在尝试使用quartz net 创建一个作业 该作业将在开始时间和结束时间之间每 45 分钟运行一次 我尝试使用 cron tigger 创建这个 cronExpression 0 0 45 8 5 然而这并没有按照我想要的方式工作 在
  • 故意删除覆盖 docker-compose 文件中的卷

    对于生产部署 我不需要共享卷 因此 我有一个覆盖文件 但这不会删除卷 有没有办法删除覆盖文件中的共享卷 我想避免仅仅为了开发而进行覆盖 因为这看起来使用起来很笨拙 这是我的docker compose yml version 2 other
  • 如何获取 current_page?匹配多个动作?

    我的问题是我正在尝试做类似的事情 current page controller tigers action index new edit 当控制器是 Tigers 并且操作是索引 新建或编辑时 它返回 true 上面不会抛出错误 但只匹配
  • 通过代码更改 Recycler 视图项目背景颜色

    我想更改 RecyclerView 项目的背景颜色 我想我应该能够做到onBindViewHolder方法 但我无法做到这一点 我只更改了项目的底部边框颜色 但我想更改完整的背景颜色 这就是我想要的 public void onBindVi
  • 更改固定任务栏图标 (Windows 7)

    我不想自定义 Windows 7 任务栏中显示的图标 当我的应用程序运行时 我可以通过更改主窗口图标来完成此操作 但是当应用程序被固定时 会显示 exe 的图标 如何将我的应用程序的任务栏图标设置为与 exe 中嵌入的图标不同的图标 没试过
  • ASP.NET MVC:如何从HtmlHelper实例获取程序集信息?

    我在与 MVC 应用程序程序集分开的程序集中有一个 HtmlHelper 扩展方法 在扩展方法中 我想获取 MVC 应用程序程序集的版本号 这可能吗 调用程序集是剃刀视图动态程序集 因此没有帮助 HtmlHelper 中是否嵌套有一些对象可