У меня есть набор методов расширения, которые я использую (см. Ниже). Вы можете использовать их как основу / пример для создания собственных методов расширения отладки / выпуска.
Общая отладка / выпуск:
public static MvcHtmlString DebugReleaseString(this System.Web.Mvc.HtmlHelper html, string debugString, string releaseString)
{
string toReturn = debugString;
#if !DEBUG
if (!string.IsNullOrEmpty(releaseString))
toReturn = releaseString;
#endif
return MvcHtmlString.Create(toReturn);
}
Общее использование отладки / выпуска:
@Html.DebugReleaseString("/images/myimage.jpg", "http://mycdn.com/images/myimage.jpg")
Отладка / выпуск тегов CSS:
public static MvcHtmlString CssTag(this System.Web.Mvc.HtmlHelper html, string fileName)
{
return html.CssTag(fileName, string.Empty);
}
public static MvcHtmlString CssTag(this System.Web.Mvc.HtmlHelper html, string fileName, string releaseFileName)
{
if (string.IsNullOrEmpty(fileName))
throw new ArgumentNullException("fileName");
string cssTag = string.Format(
"<link rel=\"stylesheet\" type=\"text/css\" href=\"{0}\" />",
html.MeDebugReleaseString(fileName, releaseFileName));
return MvcHtmlString.Create(cssTag);
}
Использование отладки / выпуска тегов CSS:
@Html.CssTag("/styles/mystyle.css")
@Html.CssTag("/styles/mystyle.css", "http://mycdn.com/styles/mystyle.css")
Отладка / выпуск тегов JS:
public static MvcHtmlString JavascriptTag(this System.Web.Mvc.HtmlHelper html, string fileName)
{
return html.JavascriptTag(fileName, string.Empty);
}
public static MvcHtmlString JavascriptTag(this System.Web.Mvc.HtmlHelper html, string fileName, string releaseFileName)
{
if (string.IsNullOrEmpty(fileName))
throw new ArgumentNullException("fileName");
string jsTag = string.Format("<script type=\"text/javascript\" src=\"{0}\"></script>",
html.MeDebugReleaseString(fileName, releaseFileName));
return MvcHtmlString.Create(jsTag);
}
Использование JS-тегов для отладки / выпуска:
@Html.JavascriptTag("/scripts/myscript.css")
@Html.JavascriptTag("/scripts/myscript.css", "http://mycdn.com/scripts/myscript.js")
Дополнительные параметры отладки / выпуска:
public enum RenderModeEnum
{
Debug,
Release,
DebugAndRelease
}
public static MvcHtmlString CssTag(this System.Web.Mvc.HtmlHelper html, string fileName, RenderModeEnum tagRenderMode)
{
if (tagRenderMode == RenderModeEnum.DebugAndRelease)
return html.CssTag(fileName);
#if DEBUG
if (tagRenderMode == RenderModeEnum.Debug)
return html.CssTag(fileName);
#else
if (tagRenderMode == RenderModeEnum.Release)
return html.CssTag(fileName);
#endif
return MvcHtmlString.Empty;
}
public static MvcHtmlString JavascriptTag(this System.Web.Mvc.HtmlHelper html, string fileName, RenderModeEnum tagRenderMode)
{
if (tagRenderMode == RenderModeEnum.DebugAndRelease)
return html.JavascriptTag(fileName);
#if DEBUG
if (tagRenderMode == RenderModeEnum.Debug)
return html.JavascriptTag(fileName);
#else
if (tagRenderMode == RenderModeEnum.Release)
return html.JavascriptTag(fileName);
#endif
return MvcHtmlString.Empty;
}
Использование дополнительных опций отладки / выпуска:
@Html.CssTag("/styles/mystyle.css", RenderModeEnum.DebugAndRelease)
@Html.CssTag("/styles/mystyle.css", RenderModeEnum.Debug)
@Html.CssTag("http://mycdn.com/styles/mystyle.css", RenderModeEnum.Release)