2010-12-28 7 views
2

私は、剃刀テンプレートでASP.NET MVC 3(リリース候補2)を使用しています。Javascriptブロックは、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> 

ページをレンダリングするとき、DatePickerのソースは以下のようにページに書き込まれます:あなたはそれをしたくない場合は

&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

をHtmlString返しそうでなければ、常に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にあなたの方法のあなたの戻り値の型を変更し、私はIHtmlStringを返す推薦

関連する問題