[解決済み] .NET MVC 3 Razor EditorでHtml5プレースホルダー拡張?
2023-02-08 03:26:10
質問
の書き方はあるのでしょうか? Html5プレースホルダー を書く方法はありますか?
@Html.TextBoxFor(model => model.Title, new { @placeholder = "Enter title here"})
あるいは、DataAnnotations を介して 'Description' 表示属性を使用することができる独自のカスタム拡張機能を記述することは意味があるのでしょうか (類似のものとして この )?
もちろん、その後、「オートフォーカス」にも同じ質問が当てはまります。
どのように解決するのですか?
このページでは
次の記事
を参照してください。
DataAnnotationsModelMetadataProvider
.
そして、もうひとつの、よりASP.NET MVC 3らしい進め方は、新しく導入された IMetadataAware インターフェイスを使用する方法です。
このインターフェイスを実装したカスタム属性を作成することから始めましょう。
public class PlaceHolderAttribute : Attribute, IMetadataAware
{
private readonly string _placeholder;
public PlaceHolderAttribute(string placeholder)
{
_placeholder = placeholder;
}
public void OnMetadataCreated(ModelMetadata metadata)
{
metadata.AdditionalValues["placeholder"] = _placeholder;
}
}
そして、それを使ってモデルを装飾します。
public class MyViewModel
{
[PlaceHolder("Enter title here")]
public string Title { get; set; }
}
次にコントローラを定義します。
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new MyViewModel());
}
}
対応するビュー。
@model MyViewModel
@using (Html.BeginForm())
{
@Html.EditorFor(x => x.Title)
<input type="submit" value="OK" />
}
そして最後にエディタ・テンプレート (
~/Views/Shared/EditorTemplates/string.cshtml
):
@{
var placeholder = string.Empty;
if (ViewData.ModelMetadata.AdditionalValues.ContainsKey("placeholder"))
{
placeholder = ViewData.ModelMetadata.AdditionalValues["placeholder"] as string;
}
}
<span>
@Html.Label(ViewData.ModelMetadata.PropertyName)
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { placeholder = placeholder })
</span>
関連
-
[解決済み] DI向けNinjectとUnityの比較【終了しました
-
[解決済み] ELMAHをASP.NET MVCの[HandleError]属性で動作させる方法は?
-
[解決済み】部分ビューから特定のセクションにコンテンツを注入する ASP.NET MVC 3 with Razor View Engine
-
[解決済み] [Solved] Replace line break characters with <br /> in ASP.NET MVC Razor view
-
[解決済み】ASP.NET MVC 3 RazorでAjax.BeginFormを使用する。
-
[解決済み】Html5 data-* with asp.net mvc TextboxFor html attributes
-
[解決済み】MVC 4 Razor ファイルアップロード
-
[解決済み】ASP.NET MVC 3 Razor - EditorForにクラスを追加する。
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
-
[解決済み] ASP.NET MVCのEditorFor()のHtml属性について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】VS 2015でコントローラからビューを追加できない : "選択されたコードジェネレータの実行にエラーが発生しました"
-
[解決済み】@sectionスクリプトとは何か、何のために使うのか?
-
[解決済み] ASP.NET MVCにおけるApiControllerとControllerの相違点
-
[解決済み] 既存のASP.NET MVC 4 WebアプリケーションのプロジェクトにWeb APIを追加するにはどうすればよいですか?
-
[解決済み] ASP.NET MVCでHTML-5のdata-*属性でダッシュを使用する方法
-
[解決済み] Html.ActionLinkをリンクではなく、ボタンや画像にする
-
[解決済み] [Solved] ASP.NET MVCでアクションの絶対URLを見つけるにはどうすればよいですか?
-
[解決済み] ASP.NET MVCでリクエストスロットルを実装するための最良の方法は?
-
[解決済み】HTTPエラー500.19とエラーコード: 0x80070021
-
[解決済み] ASP.NET MVCコントローラから外部URIへのリダイレクト