【问题标题】:Can a utility method return raw html in MVC razor实用程序方法可以在 MVC razor 中返回原始 html
【发布时间】:2012-12-19 16:46:46
【问题描述】:

我正在尝试使用 autoplay='autoplay' 的 MVC razor 向页面输出一个值,以便自动播放 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;
}

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

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

【问题讨论】:

标签: asp.net-mvc html razor


【解决方案1】:

是的。

Razor 转义系统不会转义 IHtmlString 类型的任何内容。 Html.Raw() 方法只返回一个包含您的文本的 HtmlString 实例。

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

【讨论】:

  • 我试过了,但我的实用方法不理解 Html.Raw()。你能告诉我如何申报吗?
  • @Orin:如果您没有HtmlHelper 实例,则需要自己创建一个HtmlString
猜你喜欢
  • 2015-05-06
  • 2020-01-26
  • 2011-12-02
  • 2020-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-15
相关资源
最近更新 更多