Es ist wichtig zu verstehen, dass es zwei völlig unterschiedliche Kompilierungen für Ihr Projekt gibt. Die erste ist die, die Sie in Visual Studio durchführen. Die zweite ist die, die ASP.NET durchführt, kurz bevor die Seite ausgeliefert wird. Das if DEBUG innerhalb Ihrer Ansicht wird im zweiten Schritt ausgeführt. Der von Ihnen beschriebene Release-Build ist der erste Schritt. Daher hat die Debug/Release-Einstellung Ihres Projekts überhaupt nichts mit der Debug-Einstellung in Web.config/dem ASP.NET-Compiler zu tun.
Außerdem wäre es für Ihren Visual Studio-Build völlig unangebracht, die Debug-Einstellung in der Web.config zu ändern. Es handelt sich um zwei separate Kompilierungen, und die eine sollte die andere nicht beeinflussen.
Auf der anderen Seite haben Sie wahrscheinlich einen vernünftigen Grund dafür, dass sich Ihre Ansicht anders verhält, wenn Sie innerhalb von Visual Studio debuggen, und Sie können dies tun. Sie müssen nur die "if"-Anweisung aus der Ansicht heraus und in etwas verschieben, das von Visual Studio anstelle von ASP.NET kompiliert wird. Wir tun dies mit einem HTML-Helfer. Zum Beispiel:
/// <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. ...
Dies schließt Debug-JS-Dateien ein, wenn sie in der Debug-Konfiguration in Visual Studio ausgeführt werden, aber ansonsten minimiertes JS.