私は入力テキストフィールドを持っており、ユーザーがテキストを編集した後に初期値を復元できるようにします。 したがって、初期値を保持するdata-{something}
属性(たとえばdata-init
)を追加すると、後で復元できます。MVC 5カスタムデータアノテーションで 'data-'属性を追加します。
結果は次のようになります。
今<input type="text" val="Some value..." data-init="Some value..." />
、私は私が使用してこれを達成することができます知っている:
@Html.TextBoxFor(m => m.InputText , new { data_init = Model.InputText })
をしかし、それはひどい、と私は、この動作で入力フィールドがたくさんあります。
また、私はされるべきだと思うものを、のHtmlHelper私はこの動作で多くの入力タイプを持っているので、私はこの道を行けば、それは非常に厄介になります...
だから、カスタムを作成することはできません実際的な解決策は、データ注釈を使用することです。
public class ExampleVM
{
[HoldInitialValue]
public string InputText { get; set; }
}
[HoldInitialValue]
属性は、inputタグにdata-init="{value}"
を追加する責任を負うことになります。 {value}はプロパティの値から取得され、それを上書きするオプションもあります。
この動作を実装するにはどうすればよいですか?
ヘルパーに感謝します。
カスタムHtmlHelperを作成します。をする方法知ってますか? –
@IvayloStoev - はい、私はこの動作で多くの入力タイプを持っているため、HtmlHelperソリューションを拒否しました。このようにすれば、かなり面倒です... –
このようなデータアノテーションを使用する場合は、それら。これは通常ヘルパーです。他に意味のある拡張ポイントはありません。別のオプション(実際にはMVCのやり方ではない)は、クライアント側からそれを行い、いくつかの一般的なCSSクラスに基づいて、いくつかのjavascriptコードを使用してhtml要素が初めてレンダリングされるときに初期値を追加することです。 –