問題タブ [editorfor]
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 - MVC3 EditorFor 動的プロパティ (または回避策が必要)
質問をして回答を受け取るシステムを構築しています。各質問には、独自のタイプの回答者を含めることができます。String
今のところとに限定しましょうDateTime
。ドメインでは、質問は次のように表されます。
、どこAnswerType
ですか
実際にはもっと多くの回答タイプがあることに注意してください。
Question から派生させて Answer プロパティを追加する MVC モデルを作成するというアイデアを思いつきました。したがって、次のようにする必要があります。
そして、ここから問題を開始します。質問を描画するための一般的なビューが必要なので、次のようなものにする必要があります。
ここString
では簡単な入力を行いたいのでDateTime
、独自のビューを定義します。コントローラーから具体的なモデルを渡すことができます。しかし、問題は、レンダリング段階では、当然のことながら、特に Answer のタイプを特定できないことです。特に初期の場合null
( のデフォルトString
)、EditorFor
に対して何も描画せずString
、 のすべてのプロパティに入力しますDateTime
。
問題の性質は理解していますが、エレガントな回避策はありますか? または、コントロールの種類に基づいてエディター ビュー名を選択するための独自のロジックを実装する必要があります (大きな醜いswitch
)?
asp.net-mvc-3 - ASP .NET MVC 3: EditorTemplate でジェネリック ビュー モデルを使用する方法
私はモデルを持っています。
そして、私はビューを持っています。
そして、EditorTemplates に Submodel.cshtml を書きたいのですが、書き込めません:
タイプごとに 3 つのビューを作成する以外に、どうすればよいですか?
asp.net-mvc-3 - MS MVC3 ネストされた EditorFor および同じ ViewModel を持つビュー テンプレート
エディターをレンダリングする必要があるモデルの階層があります。
階層の各部分がそれ自体をレンダリングするために必要なすべての情報を含む素敵な ViewModel が必要であり、その ViewModel が一連のテンプレートに渡されます。
その ViewModel に対して View を強く型付けしたので、ネストの最初のレベルに到達できます。
MyView.cshtml:
EditorTemplates/ViewTemplateA.cshtml 内:
---ここまでは正常に動作し、ViewTemplateA がレンダリングされます--
EditorTemplates/ViewTemplateB.cshtml:
-- ViewTemplateB は呼び出されません。それを別のものに変更し@model
、 などの一致する別のオブジェクトを渡すとx => x.SubModel
、それが呼び出されます。
何か案は??
asp.net-mvc-3 - Html.Editorヘルパー(MVC3)に関する簡単なRazorの質問
基本的に、私は次のような複数のエディターを含むテーブルを持っています。
<table>
<tr>
<td>@Html.EditorFor(x => x.Random1)</td>
<td>@Html.EditorFor(x => x.Random2)</td>
</tr>
<tr>
<td colspan="2">@Html.EditorFor(x=> x.Random3)</td>
</tr>
</table>
さて、私の問題は、おそらくcolspan = "2"からすでに理解しているように、3番目のテキストボックスを2つの列全体に拡張したいということです。通常のHTMLでは、当然、width属性を追加するだけです。DataType.MultilineText
エディターの幅を変更できるようなDataAnnotationはありますか?他のアイデアはありますか?
更新:EditorForではなくTextBoxForに変更すると、実際にを追加でき@Html.TextBoxFor(x => x.Random, new { style = "width: 500px;" })
ます。
唯一の問題は、別のテキストボックス(random4としましょう)があり、それがどういうわけかDataAnnotation MultilineTextをオーバーライドして、プレーンな500pxのテキストボックスにしていることです。病気はCSSを掘り下げる必要があると思います:(
asp.net-mvc-3 - EditorFor を使用するときに name 属性を設定するにはどうすればよいですか?
テーブル行の各要素をレンダリングするモデルの子コレクション (「Vehicles」) の部分ビューを作成しています。したがって、私のモデルは次の形式になります
モデルバインディングを機能させるには、各要素の名前を次の形式にする必要があります
EditorFor を使用すると、名前がフォームで生成されます
HtmlAttributes に名前の値を設定すると、無視されているように見えます。これを回避するには、次のことを行う必要があります。
問題は、TextBox がモデルの DisplayFormat 属性に準拠していないため、すべての書式設定が失われることです。つまり、単純なブール プロパティの SelectLists を手動で作成する必要がありますが、EditorFor で使用されるデフォルトのテンプレートがそれを行います。これを達成するための最良の方法は何ですか?
c# - MVC3 EditorForテンプレートを作成するときにDataAnnotationsにアクセスする方法はありますか?
次のようなプロパティを持つビューモデルがあるとします。
次のようなEditorForテンプレートを作成したいと思います。
明らかに、上記は失敗します(Model.Required
とModel.DisplayName
)が、私はそれを私がやろうとしていることの例として使用しています。
これは可能ですか?
前もって感謝します。
asp.net-mvc - 時間を節約するために、モデルのHtml.EditorForを作成するにはどうすればよいですか?
現在、アルバムクラスの作成ビューしかありません。
将来の時間を節約するために、作成と編集の両方にEditorForを使用するのが慣例であると言われています。
したがって、私のビューは次のようになります。
これは正しいです?これをどのように、どこで宣言し、ソリューションに記述しますか?
編集:
メインのアカウント/登録ビューにこれがあります:
そして私のEditorTemplateで:
それでも、そのダミーテキストはまったくレンダリングされません。モデルのデフォルトのコントロールをレンダリングします。
asp.net-mvc-3 - MVC3 Html.EditorFor がビューに 1 つもレンダリングされない
これらのクラスは次のとおりです。
そして、ビューで RegisterViewModel を呼び出す方法は次のとおりです。
このエラーは、ViewModel 自体に注釈がないために発生しますか? これについて正式にどこで読むことができますか?私がオンラインで見つけることができたのは、ときどきブログを 1 つまたは 2 つ見つけただけですが、オンラインでは、このような他のオブジェクトと関係があるものではなく、単純なモデルについて言及しています。典型的な外国の主要国対人関係。
何か案は?
jquery - MVC3 DataType.Date EditorFor 出力間違ったクラスを HTML に
MVC3 プロジェクトがあります。私は2つのモデルクラスを持っています。それらをFooYesとFooNoと呼びましょう。
それぞれのコントローラーを作成しました。
両方の CRUD ビューを作成しました。
次に、このリンクに従って jQuery DatePicker を実装しました。ピッカー部分のみを実装し、検証は実装しませんでした。
私の FooYes edit.cshtml では、日付ピッカーは正常に動作します。FooNo の edit.cshtml ではそうではありません。
私が見つけた唯一の違いは、モデルの出力を取得するクラスにあります。
FooYes は、最終的な html では次のようになります。
FooNo は次のようになります。
FooYes のモデルは次のとおりです。
FooNo のモデルは次のとおりです。
ご覧のとおり、宣言はモデル内で同じであるため、そうではありません。ExpirationDate プロパティを FooNo から FooYes にコピー アンド ペーストし、FooYes 内で FooNo から FooYes にすべてのものを複製したところ、機能しました。したがって、モデルのコードではありません
.cshtml のコードは次のとおりです。
これと他のものとの唯一の違いは、フィールドの名前です。
最終結果のソースhtmlを見ると、ヘッダー、インクルード、リンク、すべてがまったく同じですが、機能しないものを除いて、class =は日付ではなくテキストに設定されています。
私は完全に混乱しています。これを引き起こす原因は誰にもありますか?
asp.net-mvc-3 - mvc3 で Html.Editorfor フィールドを読み取り専用にする
これを使用しているエディター テンプレート (私のソリューションの Shared\EditorTemplates フォルダーにあります)
そしてこれは私の見解では
ビューでこのフィールドを読み取り専用にする方法