2010-12-28 2 views
2

ASP.NET MVC 3 (출시 후보 2)을 면도기 템플릿과 함께 사용하고 있습니다.자바 스크립트 블록은 mvc3 면도기 템플릿에서 html 엔티티의 문자열로 렌더링됩니다.

면도날 템플릿에 jquery datepicker를 추가하려고합니다. 확장 기능에서 생성 된 코드는 HTML 엔티티로 페이지에 쓰여지므로 페이지에는 텍스트로만 나타나고 날짜 표시기에는 나타나지 않습니다.

다음은 날짜 피커 확장입니다.

namespace System.Web.Mvc.Html 
{ 
    public static class DatePickerExtension 
    { 
     public static string DatePicker(this HtmlHelper htmlHelper, string name, string value) 
     { 

      return "<script type=\"text/javascript\">" + 
       "$(function() {" + 
       "$(\"#" + name + "\").datepicker();" + 
       "});" + 
       "</script>" + 
       "<input type=\"text\" size=\"10\" value=\"" + value + "\" id=\"" + name + "\" name=\"" + name + "\"/>"; 
     } 
    } 
} 

그리고 템플릿 파일의

:

<div class="editor-field"> 
     @Html.DatePicker("Date", Model.InterviewDate) 
</div> 

페이지를 렌더링 할 때, 날짜 선택기 소스는 다음과 같이 페이지에 기록됩니다 : 당신이 그것을 원하지 않는 경우

&lt;script type=&quot;text/javascript&quot;&gt;$(function() {$(&quot;#Date&quot;).datepicker();});&lt;/script&gt;&lt;input type=&quot;text&quot; size=&quot;10&quot; value=&quot;&quot; id=&quot;Date&quot; name=&quot;Date&quot;/&gt; 

답변

1
내가 IHtmlString 그렇지 않으면 당신은 항상 사용하는 것을 기억해야 할 것입니다 돌아 추천 할 것입니다

Html.Raw 또는 HtmlString 귀하의 견해에서 귀하의 방법으로 원시 html을 반환 할 수있을 때 그렇게하지 않아도됩니다.

public static IHtmlString DatePicker(this HtmlHelper htmlHelper, string name, string value) { 

    return new HtmlString("<script type=\"text/javascript\">" + 
     "$(function() {" + 
     "$(\"#" + name + "\").datepicker();" + 
     "});" + 
     "</script>" + 
     "<input type=\"text\" size=\"10\" value=\"" + value + "\" id=\"" + name + "\" name=\"" + name + "\"/>"); 
} 
+0

감사합니다 또한 jquery-ui-1.8.7.custom.css에 문제가있는 것 같습니다. 표시 할 datepicker를 얻으려면 "ui-helper-hidden-accessible"을 주석 처리해야했습니다. 또한 여기 참조 : http://codetrek.wordpress.com/2010/12/14/jquery-ui-in-mvc3-to-spice-it-all-up/ – tessa

3

사용 HtmlString 자동으로 인코딩됩니다. @blabla는 문자열 값을 자동으로 인코딩합니다.

당신은 사용할 수 있습니다

@(new HtmlString(Html.DatePicker("Date", Model.InterviewDate)) 

//or 
@Html.Raw(Html.DatePicker("Date", Model.InterviewDate)) 

또는 HtmlString에 방법의 수익 유형을 변경하고 HtmlString 반환

관련 문제