asp.net-mvc – asp.mvc视图在发布配置中引用#IF DEBUG

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – asp.mvc视图在发布配置中引用#IF DEBUG前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个ASP MVC视图,其中有以下声明
#if DEBUG
  //section 1
  //do stuff
#else
  //section 2
  //do other stuff
#endif

当在visual studio中,我从下拉列表中选择发布配置来进行构建,代码仍然在步骤1中。

解决方案配置属性中,解决方案的所有子项目都设置为发布配置。

我没到这里吗

解决方法

重要的是要明白,您的项目有两个完全独立的汇编。第一个是在Visual Studio中执行的操作。第二个是ASP.NET在页面投放之前所做的工作。您的视图中的if DEBUG是在第二步完成的。您描述的发布版本是第一步。因此,您的项目的调试/发布设置与Web.config / ASP.NET编译器中的调试设置无关。

此外,您的Visual Studio构建将完全不适合更改Web.config中的调试设置。这些是两个单独的汇编,一个不应该影响另一个。

另一方面,当您在Visual Studio中进行调试时,您可能有一个完全合理的需求,使您的视图行为不同,您可以这样做。您只需要将视图之外的“if”语句移动到由Visual Studio编译的东西中,而不是ASP.NET。我们用一个HTML助手来做这个。例如:

/// <summary>
        /// Returns the HTML to include the appropriate JavaScript files for 
        /// the Site.Master.aspx page,depending upon whether the assembly 
        /// was compiled in debug or release mode.
        /// </summary>
        /// <returns>HTML script tags as a multi-line string.</returns>
        public static string SiteMasterScripts(this UrlHelper helper)
        {
            var result = new StringBuilder();
#if DEBUG
            result.AppendFormat("<script src=\"{0}\" type=\"text/javascript\"></script>",helper.Content("~/Content/js/MicrosoftAjax.debug.js"));
#else
            result.AppendFormat("<script src=\"{0}\" type=\"text/javascript\"></script>",helper.Content("~/Content/js/MicrosoftAjax.js"));
#endif
        // etc. ...

包括在Visual Studio中以调试配置运行时的调试JS文件,否则最小化JS。

原文链接:https://www.f2er.com/aspnet/252367.html

猜你在找的asp.Net相关文章