問題タブ [editorformodel]

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.

0 投票する
2 に答える
1885 参照

asp.net-mvc-3 - HttpPost で MVC3 を使用してネストされたモデルをバインドする

私はMVC3が初めてです。

フォームに送信ボタンがあり、内部に多くのプロパティを持つ 2 ~ 3 個のネストされたオブジェクト モデルを持つモデルをバインドしたいと考えています。

EditorFor を使用せずにこれらのネストされたオブジェクトをバインドする方法はありますか? 返されるモデルで ActionResult(Object model) を取るフォームを送信すると、ネストされたオブジェクトモデルは、html の背後にある隠し値やフォームを実装する必要なく、その値を使用してモデル化されますか?

0 投票する
1 に答える
1000 参照

asp.net-mvc-3 - Asp.net MVC でテンプレートの編集が表示されない

私はクラスを持っています:

フォルダー共有 > EditorTemplates

PersonDetailsModel.cshtml

私からしてみれば:

UrlKeywordReCapchaフィールドのみが表示されます。

Asp.net MVC が共有フォルダーのテンプレートを使用してネストされた型を表示しないのはなぜPersonDetailsModelですか?

0 投票する
1 に答える
2118 参照

asp.net-mvc - EditorFor が派生型で機能しない

少なくとも、それは問題に関連していると思います。私のシナリオはこれです:

共通のフィールドを持つ多くのビジネス エンティティがあり、それぞれにそのエンティティに固有のカスタム フィールドがあります。したがって、コードでは、これはクラスとしてモデル化され、EntityBaseこれから派生する多くのクラスがありますDerived

再利用可能な UI を作成するために、EntityBase.vbhtml次のようなビューを用意しました。

そして、Derived.vbhtmlこれを行う派生クラスが呼び出されました。

次に、 に移動すると\Derived\Edit\123、デフォルトのビューが返されます。これは次のDerived\Edit.vbhtmlことを行うだけです:

このように、コントローラーは期待されるデフォルトの編集ビューを返すだけです。これは、ビューへのワンライナー呼び出しであり、そのことを実行し、知識のない派生クラスのものをレンダリングするためにEntityBaseを呼び出します。Derived

これは目立たないと思いましたが、うまくいきません。ビュー コードに示されているように、基本クラス ビュー内で EditorForModel を呼び出し、テンプレートとして使用する派生クラスの名前を指定すると、何もレンダリングされません。最上位の Edit テンプレートでこれとまったく同じコード行を呼び出すと、正常に動作することをテストしました。したがって、MVC が気に入らない継承についての何かがありますが、何がわかりません。助けてください!

更新EditorFor:使用する代わりに (そして、対応するテンプレートを EditorTemplates フォルダーから Shared フォルダーに移動する) と期待どおりに機能しPartialますが、EditorFor テンプレートの命名規則に従わないと混乱すると思うため、これは優れた解決策ではありません。

0 投票する
2 に答える
2063 参照

asp.net-mvc-3 - ラッピングViewModelで複雑な型にEditorForModelとDataAnnotationsを使用する方法は?

2 つの複雑な型をラップする ViewModel があります。

そしてこのビュー:

ProductData と FridgeContent には、次のような DataAnnotations を持つ POCO プロパティが含まれています。

これらのクラスと EditorForModel() メソッドからの適切なデータ注釈を使用して、EditProductView で ProductData と FridgeContent の両方を編集したい (自分でテンプレートを生成したくない)。したがって、ProductData.cshtml と FridgeContent.cshtml のテンプレートを /Views/Shared/EditorTemplates/ に作成しました。

残念ながら、EditProductViewModel のビューは空です (エラーは発生しません)。FridgeContent または ProductData のいずれかに単独で EditorForModel を使用すると、正常に動作します。[UIHint("..")] 注釈を EditProductViewModel に追加しようとしましたが、違いはありません。

私は何が欠けていますか?

0 投票する
1 に答える
10032 参照

asp.net-mvc - @ Html.EditorForModel()を使用してフォームを作成するときに、特定のフィールドに自動入力するにはどうすればよいですか?

IDEに付属のAspNetSqlProfileProviderを使用して、ユーザーにサイトのどこかにプロファイル情報を入力してもらいます。

プロファイルを編集するためのフォームが自動入力されるプロファイルの編集ページに移動することで、ユーザーがいつでもプロファイルを編集できるようにします。私は現在、ViewBagを使用して、ユーザーのプロファイルの個々の部分をコントローラーからビュー(住所や都市など)に送信することでこれを行っています。

コントローラの取得:

意見:

コントローラーポスト:

上記はプロファイルの編集には問題なく機能しますが、ユーザーの観点からは非常にスムーズです(ただし、オンラインで質問/回答を読むと、ViewModelを使用する必要があるように見えますが、移行方法が正確にはわかりません-失敗しています)。

私のユーザーがウェブサイトから「チェックアウト」に行くと(買い物をしている)、購入を可能にする最終情報を入力できる画面が表示されます。これを「注文ページ」と呼びましょう。これらの詳細には、名前、住所、クレジットカード情報などが含まれます。これらの情報の一部は、Webサイトのプロファイルページ内の情報と同じです。

一部のフィールドを空白のままにして、この注文ページの詳細(名前、住所)の一部を自動入力できるようにしたい(クレジットカード-ユーザーが注文ページにアクセスするたびにこれらの詳細を入力する必要がある) 。

注文ページの仕組みは、MVCストアチュートリアルで説明されているとおりです。注文ページが表示されると、以下を使用してフォームが表示されます。

これは素晴らしいですし、注文モデル内で指定された詳細を編集でき、データ検証のもの(名前が必要、住所が必要、クレジットカードは番号である必要があり、電子メールは適切にフォーマットされているなど)が可能になりますが、私はできませんこの注文ページ内の特定のフィールドにユーザーのプロファイルの詳細を入力する方法を理解してください。

プロファイルに含まれている情報だけを使用する新しいViewModelを作成しようとしましたが、希望する最終結果が得られないため、何が必要かを明確に把握できていません。

プロファイル情報として注文モデルのみを使用することを検討しましたが、両方で異なる情報を利用できるようにしたいので、それだけでは不十分です。

プロファイル情報を注文モデルとして使用することを検討しましたが、ユーザーが実際に注文するために使用する情報とは別に、プロファイル情報を柔軟に保存できるようにしたいと考えています。

問題を解決するために具体的に知っておく必要があるのは、「@ Html.EditorForModel()」を使用しているときに特定のフィールドに自動入力する方法です。

私の全体的な状況に関する他の助けは素晴らしいでしょう、私は私の流れを単純化するアドバイスを非常に受け入れています(私は必要以上に自分自身を難しくしているように感じます、そして私はコラボレーションが次のように感じるポイントにいます新鮮な空気の息吹)。

0 投票する
2 に答える
2526 参照

asp.net-mvc-3 - エディタ テンプレート (ラジオ ボタン リスト) とディクショナリに渡されるモデル アイテムのタイプは [enum] ですが、ディクショナリにはモデル タイプ X が必要です

同様のタイトルを見回しましたが、適切なものや何も機能しませんでした。エラーが発生する理由を理解しています。エラーを修正してEditorForModel. このエラーが発生しています:

ディクショナリに渡されたモデル アイテムのタイプは 'MyNameSpace.ViewModels.MyData+MyEnum' ですが、このディクショナリにはタイプ 'MyNameSpace.ViewModels.MyData' のモデル アイテムが必要です。

私のモデル:

[UIHint]という名前の EditorTemplate を呼び出すために使用していますMyRadioButton.cshtml。現在、私のビューは を使用して EditorTemplate も呼び出してい@Html.EditorForModelます。これは、一般的なテンプレートを呼び出しているビュー ページの一部です。

どちらのテンプレートも「/Shared/EditorTemplates/」フォルダーにあります。

これはMyRadioButton.cshtmlテンプレートです:

これはBasicDetails.cshtml(上記で呼び出された@Html.EditorForModel)です:

上記の radiobuttonlist エディター テンプレートで複雑なことは避けたいと思います。なぜなら、そこには他のことが起こっているからです (余分なものをすべて取り除きましたが、まだエラーが発生しています)。特定の radiobuttonlist をさまざまなビューで複数回使用します (これが、コピー/貼り付けではなくテンプレートにしたかった理由です)。何かアドバイス?

0 投票する
2 に答える
174 参照

asp.net-mvc - mvcアセンブリでドメインエンティティを汚染せずに@Html.EditorForModel()を使用する

メソッドを使用することはできますが、 Productwithなど@Html.EditorForModel()のドメインエンティティを汚染することはできません。アセンブリが必要な属性はありますか?HiddenInputDataType(MultiLine)System.Web.Mvc

0 投票する
1 に答える
167 参照

asp.net-mvc - 親からの子 EditorTemplates の呼び出し

私が単純なモデルを持っているとしましょう:

そして、そこから拡張された別のモデルがあります。

年を設定できる Vehicle 用の EditorTemplate があります。Views/Shared/EditorTemplates に保存されます。

Vehicle の EditorTemplate を呼び出す Car の EditorTemplate を作成したいのですが、make を設定する機能も追加します。Vehicle にさらにプロパティを追加する場合は、Vehicle エディタ テンプレートを変更するだけで済みます。My Car エディターのテンプレートを変更する必要はありません。

私はこのようなものがうまくいくと思っていたでしょう:

...しかし、何らかの理由で、そうではありません。私の見解は次のように単純です。

そのビューは、Car モデルを渡すと Car テンプレートを呼び出すことになるので、うまくいきます。しかし、表示されるのは make のエディタだけです。年間何もありません。したがって、この行@Html.EditorForModel("Vehicle")は何もしていないように見えます。Vehicle EditorTemplate は呼び出されません。

何か案は?これらは両方とも /Views/Shared/EditorTemplates 内のエディター テンプレートであり、何か関係があるのでしょうか。試してみ@Html.EditorForModel("~/Views/Shared/EditorTemplates/Vehicle")て、.cshtml を追加しましたが、どちらも機能しませんでした。

0 投票する
2 に答える
668 参照

c# - 2 つのビューを使用せずに、EditorForModel によって生成された html レイアウトを変更します。

ViewModel をレンダリングします

.cshtml を作成します。

すべての div が上下にあるため、出力コンテンツが好きではありません。1 つの div が他の div の左側にある水平レイアウトが必要な場合はどうすればよいですか?

Create.cshtml ビューに html がない場合、EditorForModel() ヘルパーを使用してこのようなレイアウトの変更を変更するにはどうすればよいですか?

アップデート:

2 つのビューを作成する必要があるのはなぜですか。他の EditorTemplate-view で @Html.EditorForModel() を呼び出すものでは、EditorFor( x => x....) を介して最初のビュー内で行うこともできるすべてのレイアウト作業を行います??? これは私には奇妙に思えます。