2011-08-16 28 views
2

私は私は(具体的のonchangeイベント)に、いくつかの動的なJavaScriptを割り当てたいHtml.TextBoxFor:防止エンコード

@Html.TextBoxFor(model => answer.Value, new { @class = "answerinput", @onchange = "submitAnswer(\"" + Model.QuestionID.ToString() + "\")" }); 

しかし、私はIHtmlStringに文字列を配置してから使用してのように、いくつかのことを試してみた

onchange="submitAnswer("3")" 

:私は問題であり、結果のHTML、JavaScript関数に渡された値の前後に引用符がエンコードされているが、調べ代入ではなくrのIHtmlStringエスカレートは常に同じです。

MVCが@onchangeに割り当てられた値をエンコードするのを防ぐ方法はありますか?

ありがとうございます!

+0

あなたはそれMvcHtmlStringなってみました? ex: 'onchange = MvcHtmlString.Create(" \ "3 \" ")' – Tejs

+0

残念ながら、同じ結果です(引用符はまだエンコードされています)。 – jasongullickson

答えて

4

また、あなたがイベントにアタッチされている方法を変更する必要があり

$('.SomeClass').each(function() 
{ 
    $(this).change(function() 
    { 
      var questionId = $(this).attr('rel'); 
    }); 
}); 
+0

私はこれを試してみましょう、ありがとう! – jasongullickson

+0

これはうまくいっていますが、Razorがすべてのコードをエンコードするのを止める方法がありますか?(私にはそれが再び出てくるはずです): – jasongullickson

+0

https://stackoverflow.com/questions/ 22507671/bootstrap-datepicker-date-event-doesnt-fire-up-手動編集日時 –

-1

一重引用符を使用してください。エスケープ文字は不要です。イベントにアタッチ、JavaScriptでは次に

Html.TextBoxFor(x => x.SomeProperty, new { rel = Model.QuestionID, @class = "SomeClass" }); 

@Html.TextBoxFor(model => answer.Value, new { @class = "answerinput", @onchange = "submitAnswer('" + Model.QuestionID.ToString() + "')" }); 
+1

はい私はショットを与えましたが、結果は似ていますが(一重引用符文字のエンコードが異なります)。 – jasongullickson