java script タグに含まれていない場合に機能する拡張メソッドを作成しました。
public static class ExtensionMethods
{
public static string TickWrap(this HtmlHelper source, MvcHtmlString mvcHtmlString)
{
return "'" + mvcHtmlString.ToHtmlString().Replace("'", "''") + "'";
}
}
私の見解での使用法は次のとおりです
@Html.TickWrap(Html.DisplayNameFor(m => Model.SampleDateTime))
以下にリストされているデータ注釈の表示名属性を取得し、それを「日付と時刻」として表示し、その周りに目盛りを付けているだけです。
[Display(Name = "Date and Time")]
public DateTime SampleDateTime {get; set;}
ただし、これをスクリプトタグで機能させることはできないようです。JavaScript の重大なエラー構文エラーが発生しています。以下は、私のビューに含まれているスクリプトです。
<script type="text/javascript">
$(function () {
var displayName = @Html.TickWrap(Html.DisplayNameFor(m => Model.SampleDateTime))
alert(displayName);
});
</script>
スクリプト セクションでの HtmlHelper の使用と関係があるのではないでしょうか。もしそうなら、スクリプトセクションでどのように使用できますか?
これは私が行っていることの簡略化されたバージョンですが、私が実際にやろうとしているのは、javascript でハードコードすることなく、jqGrid の colNames を設定することです。データ注釈を使用したいので、変更する必要があるのは 1 か所だけです。jqGrid の colNames は次のように定義されます。
colNames: ['ParameterId','Location', 'Parameter Name', 'Date and Time', 'Parameter Value']