实用程序方法可以在MVC剃刀中返回原始html

Ori*_*rin 6 asp.net-mvc html5 razor

我试图使用MVC razor of autoplay ='autoplay'向页面输出一个值,以便自动播放HTML5视频.我的方法GetAutoPlayVideo读取web.config文件以确定该站点是否将自动播放视频.

public static string GetAutoPlayVideo()
{
     bool autoPlayVideo = Converter.ToBoolean(System.Web.Configuration.WebConfigurationManager.AppSettings["AutoPlayVideo"]);
     if (autoPlayVideo)
     return "autoplay='autoplay'";
     else
         return string.Empty;
}
Run Code Online (Sandbox Code Playgroud)

然后在页面上使用以下标记:

    <div id="videoHolder">
                <video id="video" width="503" height="284" @Html.Raw(MyUtility.GetAutoPlayVideo()) controls >
                @foreach (string s in Model.SelectedShow.VideoFiles)
                {
                    <source src="@(CdnResources.GetImageUrl(s))" type="@(Utility.GetMimeType(s))" />
                }
                Your browser does not support the video tag.
            </video>
        </div>
Run Code Online (Sandbox Code Playgroud)

我到目前为止创建的语法是这样的:

@Html.Raw(MyUtility.GetAutoPlayVideo())
Run Code Online (Sandbox Code Playgroud)

有可能缩短这个类似的东西吗?

@MyUtility.GetAutoPlayVideo()
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 12

是.

Razor逃逸系统不会逃脱任何类型IHtmlString.该Html.Raw()方法只返回HtmlString包含文本的实例.

您可以简单地将方法声明为返回IHtmlString,并调用Html.Raw()(或new HtmlString()内部.