8

HTML5ビデオを自動再生するために、autoplay='autoplay'のMVCかみそりを使用してページに値を出力しようとしています。私のメソッド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;
}

次に、ページで次のマークアップを使用します。

    <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>

これまでに作成した構文は次のとおりです。

@Html.Raw(MyUtility.GetAutoPlayVideo())

これを次のようなものに短縮することは可能ですか?

@MyUtility.GetAutoPlayVideo()
4

1 に答える 1

13

はい。

かみそりエスケープシステムは、タイプの何もエスケープしませんIHtmlString。このHtml.Raw()メソッドは、HtmlStringテキストを含むインスタンスを返すだけです。

メソッドをreturningとして宣言し、(または内部IHtmlStringで)呼び出すことができます。Html.Raw()new HtmlString()

于 2012-12-19T16:49:49.877 に答える