問題タブ [mvc-editor-templates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc-3 - EditorTemplate。MVC3
EditorTemplateを作成しました:
コード付き:
そして、私はそれをこのように使おうとします:
ContactsViewModelは次のようになります。
しかし、そのページにエディターが表示されません...なぜですか?
asp.net-mvc - フォームをエディタテンプレートの内側または外側に配置する必要がありますか?
ASP.netMVCでエディターテンプレートを使用しています。フォームをエディターテンプレートの内側に配置する必要がありますか、それともテンプレートの外側に配置する必要がありますか?
例:
中身
〜/ Views / Products / Create.cshtml
〜/ Views / Products / EditorTemplates / CreateProduct.cshtml
外側
〜/ Views / Products / Create.cshtml
〜/ Views / Products / EditorTemplates / CreateProduct.cshtml
asp.net-mvc-3 - Asp.Net MVC3 Razor - 子項目リストがエディタからポストバックされない
MVC3 でマルチレベル エディターを作成しようとしています。マルチレベルとは、3 レベルの階層 (親オブジェクト、親の子オブジェクト、サブ子オブジェクトのコレクション) のデータを編集できるようにしたいという意味です。私のモデルはおおよそ次のようになります。
階層全体を 1 つの画面に表示したいので、次のビュー モデルを作成しました。
コントローラーは次のようになります。
レンダリングされているビューは次のとおりです。
Views\Shared\EditorTemplates に 2 つのエディター テンプレートを作成しました。
ChildTemplate.cshtml
および SubChildTemplate.cshtml
すべてが正しくレンダリングされますが、変更を保存しようとすると、SubChildren コレクションが null になります。edit メソッドの 2 つのシグネチャを試しました。
そして、それらのどれにも価値はありません。
誰かがそれを機能させるために何を改善できるかを提案できますか? よろしくお願いします。
telerik - モデルをエディター テンプレートに渡す方法
私はAjaxバインディングでTelerik MVC Gridを使用しており、エディターテンプレートを使用してInCell編集モードでグリッド編集を使用しています。モデルを編集者に渡したいと思います。
サーバー バインディングを使用していれば、モデルをエディター テンプレートに渡すことができる可能性があります。しかし、Ajax バインディングについてはよくわかりません。
Ajax バインディングを使用する場合、モデルをエディター テンプレートに渡すことはできますか?
asp.net - MVC3 エディター テンプレートで検証属性を取得する
3 つのフィールドで構成される日付と時刻を入力するためのエディター テンプレートを作成しています。
- jQuery UI の日付ピッカーを含むテキスト ボックス。
- 時間を入力するテキストボックス。
- JavaScript を介して完全な日付と時刻の文字列で更新される非表示の入力。
モデルにバインドされるフィールドは 1 つだけですが、ユーザーに表示される日付と時刻のフィールドを別々にするという考え方です。表示されるフィールドが変更されるたびに、隠しフィールドは JavaScript によって更新されます。
日付ピッカーを設定し、非表示フィールドに値をコピーする JavaScript。
私の問題は検証属性です。それらはすべて非表示の入力タグに存在します。
data-val*
何らかの形で生成された属性を取得し、代わりにそれらを可視入力に追加したいと思います。ViewData.ModelMetaData
フィールドが必須かどうかを調べることはできますが、その場合、属性を作成するロジックを再発明する必要がありますdata-val-required
。代わりに生成された属性を取得したいと思います。
asp.net-mvc-3 - MVC3 EditorTemplate の IEnumerable プロパティ
ASP.NET MVC 3 Editor Template のこの投稿IEnumerable モデル プロパティと同様に、私は持っています
モデル
表示 - 学生の編集
学生/編集者テンプレート/クラス
コントローラ
ステートメント @Html.EditorFor(m => m.Classes) のビューのエラー。は..
ディクショナリに渡されるモデル アイテムのタイプは 'System.Collections.Generic.HashSet`1[Class]' ですが、このディクショナリにはタイプ 'Class' のモデル アイテムが必要です。
基本的に、私が達成しようとしているのは、利用可能なすべてのクラスのリストを表示し、その横にチェックボックスを付けることです (コードのその部分にはまだ到達していません)。次に、生徒が登録されているすべてのクラスを確認し、選択を変更できるようにします。
- 指定されたモデルでチェックボックスのリストを表示するにはどうすればよいですか。
- EditorTemplate を ViewBag.Classes (どのように) にバインドする必要がありますか?
- Post ActionMethod で選択したチェックボックスの値も取得する必要があります。
- CheckBoxListHelper の作成を提案するいくつかの投稿を読みましたが、単純なリストを表示する必要があるため、EditorTemplate で実行できるはずです。
提案してください。ありがとう。
jquery - jQueryを複製せずにAjax経由でロードされたASP.NET MVC3 EditorTemplates?
私は、DateTime、Colors などに EditorTemplates を使用しています。これらのテンプレートがかなり含まれている可能性がある私のフォームは、主に Ajax を介して部分ビューとして読み込まれます。
各エディター テンプレートの下部に多数の jQuery 初期化スクリプトを配置するのではなく、応答ごとに 1 回だけ実行する概念的な方法はありますか? 1 つのフォームに 10 個の日時ピッカーがあるとします。同じ初期化コードを 10 回渡すのは本当にばかげています。
10 個の日付ピッカーを使用してメイン フォームに初期化スクリプトを配置すると効率的です (確かに、コードを日時エディター テンプレートに分離しておくことにはあまり効果がありません)。 1 つまたは 2 つまたは 3 つの別のフォームで、これらのスクリプトをコード内の複数のビューに複製しています。
では、ここでエディター テンプレートを適切に活用するにはどうすればよいでしょうか? 私は次のようなものを探していると思います-
AJAX を介してレンダリングされた部分ビューで動作するエディター テンプレートの下部に追加します。
asp.net-mvc - MVC 3 エディター テンプレートは HiddenInput を尊重していないようです
エディター テンプレートの使用とカスタマイズに関する Brad Wilson の優れたシリーズに従って、Object.cshtml をShared\EditorTemplates
フォルダーに追加してみました。テンプレートはレンダリングされますが、[HiddenInput(DisplayValue = false)]
on a model プロパティは非表示<input type="hidden" ... />
を期待どおりにレンダリングしません。を使用[HiddenInput(DisplayValue = true)]
すると、非表示要素と可視要素の両方が期待どおりにレンダリングされます。
Object
のデフォルト テンプレートが正常に機能し、非表示の入力がレンダリングされることを確認しました。上記の Brad のシリーズに基づいてカスタム テンプレートを作成する場合にのみ問題になります。
asp.net-mvc-3 - バインド方法
input[type='text']
タイプのプロパティを持つフィールドにバインドする方法Subsidiary
ユーザーがパーティを登録するとき、フィールドの 1 つはパーティであった子会社です
DropDown、Select、または Rad
input[type='text']
タイプのプロパティを持つフィールドにバインドする方法Subsidiary
ユーザーがパーティを登録するとき、フィールドの 1 つはパーティであった子会社です
DropDown、Select、または Radio を配置する代わりに、input[type='text']
フィールドを配置し、ユーザーが子会社の名前を入力し始めると、jQueryUI のオートコンプリートにより、子会社のリストがフィルター処理されたことが示されます
コード
これらのタスクを達成するために、私は以下を持っています:
ビューモデル
HTML
EditorTemplates によって生成された HTMLSubsidiarySelect
#Subsidiary_Title
> 選択した子会社を表示するために使用されます
#Subsidiary
> 選択したコードを保存します 子会社のガイド
コントローラ
私のコントロールは特別なものではありません。クラスのプロパティがいっぱいにSubsidiary
なるPartyViewModel
ことを望みます。
質問
を作成してSubsidiaryBinder: IModelBinder
、投稿が作成されたときに、Subsidiary
プロパティにデータベースの値を入力することを考えました (ID も同様です)。
- これが解決策である場合、クラス PartyViewModel でのみ実行するバインダーを作成する方法
- 投稿時に
Subsidiary
プロパティ クラスの値をデータベースから自動的に取得するにはどうすればよいですか?PartyViewModel
ここで他の回答を要約すると、箇条書きとリスト項目内のテキストの間のスペースをより細かく制御したい場合は、<li>
次のオプションがあります。
(1) 背景画像を使用する:
利点:
- 箇条書きには任意の画像を使用できます
- CSS
background-position
を使用して、ピクセル、em、または % を使用して、テキストに対して必要な場所に画像を配置できます。
短所:
- 余分な (小さいながらも) 画像ファイルをページに追加し、ページの重量を増やします
- ユーザーがブラウザでテキスト サイズを大きくしても、箇条書きは元のサイズのままです。また、テキストサイズが大きくなるにつれて、位置がさらにずれてしまう可能性があります
- 幅のパーセンテージのみを使用して「レスポンシブ」レイアウトを開発している場合、画面幅の範囲で目的の場所に箇条書きを正確に配置するのは難しい場合があります。
<li>
2.タグにパディングを使用する
利点:
- 画像なし = ダウンロードするファイルが 1 つ少ない
- のパディングを調整することで、箇条書きとテキストの間に水平方向の余白を好きな
<li>
だけ追加できます。
- ユーザーがテキストのサイズを大きくした場合、間隔と箇条書きのサイズは比例して拡大縮小する必要があります
短所:
- ブラウザのデフォルトよりも箇条書きをテキストに近づけることはできません
- CSS の組み込みの箇条書きタイプの形状とサイズに限定されます
- 箇条書きはテキストと同じ色でなければなりません
- 弾丸の垂直位置を制御できない
(3)余分な<span>
要素でテキストをラップする
利点:
- 画像なし = ダウンロードするファイルが 1 つ少ない
- オプション (2) よりも箇条書きの位置をより細かく制御できます。箇条書きをテキストに近づけることができます (ただし、最善を尽くしても、に追加
padding-top
して垂直位置を変更することはできないようです<span>
。他の誰かが持っている可能性があります)。ただし、これに対する回避策...)
- 箇条書きはテキストとは異なる色にすることができます
- ユーザーがテキストのサイズを大きくすると、箇条書きはそれに比例して拡大縮小する必要があります (パディングとマージンを px ではなく ems で設定した場合)。
短所:
- 追加の意味不明な要素が必要です (これにより、SO では実際よりも多くの友人を失う可能性があります ;) しかし、自分のコードをできるだけ無駄のない効率的なものにしたい人にとっては迷惑であり、プレゼンテーションとコンテンツの分離に違反します。その HTML / CSS が提供することになっている)
- 弾丸のサイズと形状を制御できない
CSS4 に新しいリスト スタイルの機能が追加されることを期待しています。これにより、画像や追加のマークアップに頼らずに、よりスマートな箇条書きを作成できます :)
input[type='text']
タイプのプロパティを持つフィールドにバインドする方法Subsidiary
ユーザーがパーティを登録するとき、フィールドの 1 つはパーティであった子会社です
DropDown、Select、または Rad
input[type='text']
タイプのプロパティを持つフィールドにバインドする方法Subsidiary
ユーザーがパーティを登録するとき、フィールドの 1 つはパーティであった子会社です
DropDown、Select、または Radio を配置する代わりに、input[type='text']
フィールドを配置し、ユーザーが子会社の名前を入力し始めると、jQueryUI のオートコンプリートにより、子会社のリストがフィルター処理されたことが示されます
コード
これらのタスクを達成するために、私は以下を持っています:
ビューモデル
HTML
EditorTemplates によって生成された HTMLSubsidiarySelect
#Subsidiary_Title
> 選択した子会社を表示するために使用されます
#Subsidiary
> 選択したコードを保存します 子会社のガイド
コントローラ
私のコントロールは特別なものではありません。クラスのプロパティがいっぱいにSubsidiary
なるPartyViewModel
ことを望みます。
質問
を作成してSubsidiaryBinder: IModelBinder
、投稿が作成されたときに、Subsidiary
プロパティにデータベースの値を入力することを考えました (ID も同様です)。
- これが解決策である場合、クラス PartyViewModel でのみ実行するバインダーを作成する方法
- 投稿時に
Subsidiary
プロパティ クラスの値をデータベースから自動的に取得するにはどうすればよいですか?PartyViewModel
ここで他の回答を要約すると、箇条書きとリスト項目内のテキストの間のスペースをより細かく制御したい場合は、<li>
次のオプションがあります。
(1) 背景画像を使用する:
利点:
- 箇条書きには任意の画像を使用できます
- CSS
background-position
を使用して、ピクセル、em、または % を使用して、テキストに対して必要な場所に画像を配置できます。
短所:
- 余分な (小さいながらも) 画像ファイルをページに追加し、ページの重量を増やします
- ユーザーがブラウザでテキスト サイズを大きくしても、箇条書きは元のサイズのままです。また、テキストサイズが大きくなるにつれて、位置がさらにずれてしまう可能性があります
- 幅のパーセンテージのみを使用して「レスポンシブ」レイアウトを開発している場合、画面幅の範囲で目的の場所に箇条書きを正確に配置するのは難しい場合があります。
<li>
2.タグにパディングを使用する
利点:
- 画像なし = ダウンロードするファイルが 1 つ少ない
- のパディングを調整することで、箇条書きとテキストの間に水平方向の余白を好きな
<li>
だけ追加できます。 - ユーザーがテキストのサイズを大きくした場合、間隔と箇条書きのサイズは比例して拡大縮小する必要があります
短所:
- ブラウザのデフォルトよりも箇条書きをテキストに近づけることはできません
- CSS の組み込みの箇条書きタイプの形状とサイズに限定されます
- 箇条書きはテキストと同じ色でなければなりません
- 弾丸の垂直位置を制御できない
(3)余分な<span>
要素でテキストをラップする
利点:
- 画像なし = ダウンロードするファイルが 1 つ少ない
- オプション (2) よりも箇条書きの位置をより細かく制御できます。箇条書きをテキストに近づけることができます (ただし、最善を尽くしても、に追加
padding-top
して垂直位置を変更することはできないようです<span>
。他の誰かが持っている可能性があります)。ただし、これに対する回避策...) - 箇条書きはテキストとは異なる色にすることができます
- ユーザーがテキストのサイズを大きくすると、箇条書きはそれに比例して拡大縮小する必要があります (パディングとマージンを px ではなく ems で設定した場合)。
短所:
- 追加の意味不明な要素が必要です (これにより、SO では実際よりも多くの友人を失う可能性があります ;) しかし、自分のコードをできるだけ無駄のない効率的なものにしたい人にとっては迷惑であり、プレゼンテーションとコンテンツの分離に違反します。その HTML / CSS が提供することになっている)
- 弾丸のサイズと形状を制御できない
CSS4 に新しいリスト スタイルの機能が追加されることを期待しています。これにより、画像や追加のマークアップに頼らずに、よりスマートな箇条書きを作成できます :)
asp.net-mvc-3 - MVC3data-val-*属性はモデルエディターテンプレートから出力されません
現在のMVC3プロジェクトのモデルの1つにエディターテンプレートを作成しました。このモデルは、基になるモードのプロパティに対して正しいエディターを呼び出していますが、検証用の目立たないdata-val-*属性がありません。
MVCにdata-val属性を出力させるにはどうすればよいですか?
これが私のモデルです
と私のエディタテンプレート:
そして私のviewModel:
私はこの投稿を見て、すべてのベースエディターテンプレートは、MVCが名前を生成できるように名前を空の文字列のままにするという考えに対応しています。それでも私はまだ検証をしていません。