2012-12-19 2 views
4

HTML5 비디오를 자동 재생하기 위해 autoplay = 'autoplay'의 MVC 면도기를 사용하여 페이지에 값을 출력하려고합니다. 내 메소드 GetAutoPlayVideo는 web.config 파일을 읽어 사이트에서 동영상을 자동 재생할지 결정합니다.유틸리티 메서드가 MVC 면도기에서 원시 HTML을 반환 할 수 있습니까

@Html.Raw(MyUtility.GetAutoPlayVideo()) 

이 같은이를 짧게 할 수있다 :

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

내가 지금까지 만든 구문은 이것이다 :

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

은 다음 페이지에 다음과 같은 마크 업을 사용 ?

@MyUtility.GetAutoPlayVideo() 
+0

이 http://stackoverflow.com/questions/4707518/razor-and-html-helpers의 중복 수 있습니다 –

+0

HTML 도우미는 마술이 아니며 일반적인 C# (확장) 메서드입니다. – SLaks

답변

10

예.

면도기 이스케이프 시스템은 IHtmlString 유형의 항목을 이스케이프하지 않습니다. Html.Raw() 메서드는 텍스트가 포함 된 HtmlString 인스턴스를 반환하기 만합니다.

당신은 단순히 IHtmlString을 반환로 방법을 선언하고 Html.Raw() (또는 내부 new HtmlString()를 호출 할 수 있습니다.

+0

내 유틸리티 메서드가 Html.Raw()를 이해하지 못했지만이를 선언하는 방법을 말해 줄 수 있습니까? – Orin

+0

@ Orin : HtmlHelper 인스턴스가 없다면 직접 HtmlString을 만들어야합니다. – SLaks

+0

이것은 매력처럼 작동했습니다! thanks SLaks – Orin

관련 문제