使用Razor /MVC3

问题描述 投票:0回答:10

在页脚上打印:

Revision 0.0.0.0

当我修改视图以使用以下内容显示“执行程序集”的所有汇编信息时

@System.Reflection.Assembly.GetExecutingAssembly().GetName().ToString()
打印以下内容:

Revision App_Web__layout.cshtml.639c3968.hlogy75x, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
这表明“执行程序集”不是我的主要应用程序,而是视图本身。  

我如何获得实际应用程序的组装信息,而不仅仅是单个视图?
    

CSHTML/VBHTML是动态编译到组装的。

@typeof(YourApplicationNamespace.MvcApplication).Assembly.GetName().Version

如何?
c# asp.net-mvc-3 reflection assemblies razor
10个回答
228
投票

这对我有用。无需明确提及类型。
@ViewContext.Controller.GetType().Assembly.GetName().Version


22
投票

public static HtmlString ApplicationVersion(this HtmlHelper helper) { var asm = System.Reflection.Assembly.GetExecutingAssembly(); var version = asm.GetName().Version; var product = asm.GetCustomAttributes(typeof(System.Reflection.AssemblyProductAttribute), true).FirstOrDefault() as System.Reflection.AssemblyProductAttribute; if (version != null && product != null) { return new HtmlString(string.Format("<span>{0} v{1}.{2}.{3} ({4})</span>", product.Product, version.Major, version.Minor, version.Build, version.Revision)); } else { return new HtmlString(""); } }



17
投票

typeof(MyType).Assembly.Whatever

where是MVC项目本身(例如,控制器或模型或
MyType

7
投票

MvcApplication


扩展TakePara的答案,如果您想从MVC Razor视图中获取一个衬套,以获取汇编的信息:

 <p>Assembly Version: @typeof(EdiServer.Controllers.HomeController).Assembly.GetName().Version.ToString();</p>
    

对于API控制器,我基于其他答案使用了此功能

4
投票

您可以尝试使用getCallingAssembly()。我不确定这是否足够高,这是否足够高,但是由于Razor实际上为每个视图创建一个组件,因此可以认为您的应用程序将成为视图组件的呼叫组件。

我的问题是,我之后已重命名为命名空间,并且在上面遇到了错误。
问题是\ web.config中的旧名称空间参考。我不得不将其从

1
投票
更改为

Project.WebAPI17

Company.Project.WebAPI17

0
投票

IN.NET CORE 6及以上:

0
投票

<system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <pages pageBaseType="System.Web.Mvc.WebViewPage"> <namespaces> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Optimization"/> <add namespace="System.Web.Routing" /> <add namespace="Company.Project.WebAPI17" /> </namespaces> </pages> </system.web.webPages.razor>


or

GetType().Assembly.GetName().Version.ToString();

0
投票
Https://edi.wang/post/2018/9/9/27/get-app-version-net-core

go到家庭控制器,只需复制以下代码:

rename

Assembly.GetEntryAssembly().GetCustomAttribute<AssemblyFileVersionAttribute>().Version

tostring

ActionResult

您可以使用以下名称属性获取它:


-1
投票

是您要寻找的?


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.