問題タブ [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 - asp .net MVC3でEditorFor()htmlヘルパーのIDを設定する方法
これを使用して、フレームワークで生成されたIDをオーバーライドしましたが
@Html.EditorFor(model => model.cost, new { id = "checkCost" })
、残念ながらidは変更されていません。つまり、コントローラーアクションで
使用する場合
string d = Request.Form["checkCost"];
、文字列はnull値で埋められます。
どうして??また、EditorForをTextBoxForに置き換えましたが、何も変更されていないため、コントローラーもIDとしてコストがかかります
更新しました:
- これは私の部分的なビューであり、私のメインビュー(ajax.actionLinkから部分的にレンダリング)もEditorFor(model => mode.cost)を保持しています
- 部分ビューはCheck_masterテーブルに強く型付けされ、メインビューはpackage_masterに強く型付けされます。ここで、entitySetは両方とも同じ名前プロパティを保持します。つまり「COST」次に、部分ビューとメインビューの両方がEditorFor「コスト」
を保持します。 - [Column( "check_cost")]
public Nullable cost {get; セットする; }
しかし、なぜこれが機能しないのかわからない、つまり、プロパティnaemが次のように参照しているときに変更されない
asp.net-mvc-3 - MVC3 EditorFor テンプレートを使用して HTML テーブル行クラスを交互に変更する
私はできる限りグーグルで検索しましたが、うまくいきませんでした。うまくいけば、これは単純な問題です!
ViewModel オブジェクトのコレクションに Html.EditorFor を使用しています。
しかし、テーブルの交互の行に交互のクラス(「奇数」、「偶数」)が必要です。SOで取り上げた次の方法を使用してみましたが、エディターテンプレート内で使用すると、「カウント」値がリセットされ、すべて同じになります。
次のように:
これはコードを介して可能ですか?
私が達成したいこと:
エディタ テンプレート
皆さんありがとう。
c# - カミソリ EditorFor View をどのように埋め込むのですか
ユーザーがアイテム番号を入力すると、アイテムのタイプに基づいてアクションを処理するために、多数のプロセッサの 1 つが呼び出される構成可能な Web アプリケーションがあります。各「プロセッサ」は個別の .dll にあり、アプリケーションにドロップして IOC コンテナによって取得され、サイトを拡張できます。
プロセッサは、フィードバックを求める必要がある場合があるため、Html.EditorFor と共に使用されるオブジェクトを渡して、ユーザーから追加情報を収集します。
私の質問は、EditorFor テンプレートを別の .dll に埋め込み、それを Web アプリケーションで取得する方法があるかどうかです。理想的には、プロセッサが独自の EditorFor テンプレートを指定できるようにして、基本的な EditorFor テンプレートが不足しているためにそれを使用しないようにすることができます。
asp.net-mvc-3 - EditorForを使用したMVC3コレクションモデルのバインド
私が次のものを持っているとしましょう:
そして、私は:を受け取るビューを持っていますBarViewModel
:
そして私のコントローラーには、を受け取るPOSTメソッドがありBarViewModel
ます。
Value1とValue2に対して生成された入力名が"Foos[0].Value1"
など"Foos[1].Value1"
の場合、POSTメソッドのBarViewModelのコレクションはModelBinderによって自動的に入力されます。素晴らしい。
問題は、私の見解では、このようにすると:
次に、入力用に生成された名前はのよう"Foos__0__Value1"
になり、モデルのバインディングが壊れます。Foos
POSTメソッドのBarViewModelのプロパティが次のようになりましたnull
私は何かが足りないのですか?
編集
EditorFor
コレクション自体で使用する場合:
名前は正しく生成されます。しかし、それは私にタイプを処理するために/ Views / ShareにViewModelを構築することを強制しますFoos
、それは私が本当にしたくない行を生成します...
編集2
ここで私の質問を明確にします、それは少し曖昧であることを理解しています。
私が行った場合 :
入力の名前には形式が"Foos[0].Value1"
あり、モデルのバインドは投稿で問題なく機能します。
しかし、私がそうするなら:
名前は形式"Foos__0__Value1"
を取り、モデルバインディングは機能しません。私のpostメソッドでは、model.Foosはnullになります。
2番目の構文がモデルのバインドを壊す理由はありますか?
asp.net-mvc-3 - 列挙型を使用してドロップダウン リストを作成する
重複の可能性:
MVC3 Razor DropDownListFor Enums
私はASP.NET MVC3の初心者です(本当に新しい)。4 年生レベルの学生用のドロップダウン リスト ボックスを作成したいと考えています。「第一」、「第二」、「第三」、「第四」があります。モデルでは、次のように YLevels という名前の Enum を作成しました。
全体として、私のモデル クラス StudentMT には以下が含まれます。
次に、私の見解では、EditorFor() を使用したいと思います。
この列挙型を使用するプロパティを定義するにはどうすればよいですか? EditorFor() を使用してドロップダウン リストを表示するにはどうすればよいですか? 私にできることを提案してください。
前もって感謝します!
asp.net-mvc-3 - Html.EditorFor nullable DateTimeは、ビューからnullとしてポストバックします
次の仮定をしてみましょう。ASP.NET MVC 3 Razor C#、ビューモデル(エンティティなどではない)にバインドされた厳密に型指定されたビュー。Html.EditorForメソッドを使用して、ビューモデルのnull許容のDateTimeプロパティを編集します。追加した2つのデータ注釈属性が原因で、モデルのバインドが失敗しているようです。
サンプルビューコード
ViewModelコードのサンプル
サンプルコントローラーコード
データ注釈属性が追加されたときにビューのフォームが送信されたときに、ビューに入力されたデータはコントローラーにポストバックされません。これは、これらの属性でEditorForを使用すると、モデルのバインドが失敗することを意味します。モデルのバインドはTextBoxForで正常に機能し、TextBoxFor入力ボックスに入力された値はビューモデルとともにビューに戻されます。EditorForとデータ注釈検証属性のここでの問題は何ですか?
複数の追加のクラス、ヘルパー、テンプレートを作成し、大量の追加コードを記述して、車輪の再発明を伴わない解決策を見つけてください。私は1行または2行のソリューションを探しています。
asp.net-mvc-3 - チェックボックスとラジオボタンを備えたMVC3階層ビューモデル
過去数か月にわたって MVC を学習してきたので、多くのことをカバーしてきましたが、比較的新しいものです...
比較的複雑なビュー モデルでチェック ボックスとラジオ ボタンを出力しようとすると問題が発生します。
次のビューがあります(無関係なフィールドは削除されています):
階層ビュー モデルは次のようになります。
メタデータの各部分には単一のタイプがあります。タイプは、メタ データの編集方法と表示方法 (およびデータ レイヤー内のデータの格納場所) を定義します。物事の表示側は完全に正常に機能しています。
タイプが「SELECTION」の場合、1つだけ選択できるラジオボタンのセットを1つ表示したい。タイプが「MULTISELECTION」の場合、複数選択できるチェックボックスのセットを表示したい。これはできますが、選択した値をモデルに正常にバインドできました。
現時点では、次のようなリストを表示するためにエディター テンプレートを使用しています。
これは、この問題が解決したときに拡張されますが、今のところ、すべてが期待どおりに出力されます。SELECTION タイプのラジオ ボタン リストと MULTISELECTION タイプのチェックボックス リストが表示されますが、モデルに適切にバインドされていません。アクションを送信します。
私は少し頭がおかしくなっています。私が間違っていることが明らかな人はいますか?
余談として:
MetaDataOption クラスのエディター テンプレートも作成しようとしましたが、テンプレート名が指定されている場合 (Html.EditorFor(m => m.Options , "MetaDataOptionsSingle") および Html.EditorFor(m => m.Options, "MetaDataOptionsMulti")) - エディター テンプレートの名前を指定しない場合、テンプレートは MetaDataOption モデルを持つことができますが、名前を指定する場合、リストが必要です。
アップデート
OK、なんとかこれを機能させましたが、目立たないチェックボックスの検証に問題があります。修正は次のとおりです。
メタデータ エディター テンプレートは次のようになります。
MULTISELECTION EditorFor 用に別の EditorTemplate を追加しました。
MetaDataOption クラスは次のとおりです。
送信時にモデルが正しく入力されるようになりました。ただし、エディター テンプレートによってレンダリングされたすべてのチェックボックスで検証が行われますが (クライアント検証をまだ実装していないため、ポスト アクション メソッドで)、MetaDataOption クラスの「選択済み」メンバーにはデータ注釈がありません。
注意事項 - チェックボックスが選択されていない場合、MetaData クラスの「Options」メンバーは null です。
Selected プロパティを null 許容 bool (bool?) に設定しようとしましたが、MetaDataOption エディター テンプレートの CheckBoxFor() ヘルパーが null 許容 bool を受け入れないという問題に遭遇しました。
これは私を夢中にさせています...私は、ASP.Netでやり遂げたであろう何かを機能させるために2日間を費やしました!
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 をさまざまなビューで複数回使用します (これが、コピー/貼り付けではなくテンプレートにしたかった理由です)。何かアドバイス?
asp.net-mvc - HTML.EditorForをドロップダウンに変換する(html.dropdownfor?)
現在、このようなデフォルトの「作成」ビューページでHtml.EditorForコントロールを使用しています。
これを値付きのドロップダウンに変換し、ビュー内のモデルにバインドしたいと思います。私の質問は2つあります。
ドロップダウンに必要な値が2/3しかない場合、2つまたは3つの値を明示的に入力する簡単な方法はありますか?
リストが大きく、SQLクエリから取得する必要がある場合、これを行うにはどうすればよいですか?
助けてくれてありがとう。
asp.net-mvc-3 - IEnumerableのMVCOrderByEditor
登録したばかりですが、これが初めての投稿ですので、質問が良くない場合はご容赦ください。私は調べてみましたが、私の要件に合った答えを見つけることができません。これはおそらく、私が望むことを達成することができないためです。
ビューモデルからEditorForフィールドのIEnumerableリストを取得する部分ビューがあります。
DocumentViewModelContainerのコードは次のとおりです。
DocumentViewModelのコードは次のとおりです。
両方のビューモデルには、この質問とは無関係であるとして除外したオブジェクトが他にもたくさんあります。DocumentMetadataFieldViewModelは、標準タイプ(int、stringsなど)のいくつかのフィールドで構成されています。
私が達成しようとしているのは、次のように、ボトムビューモデルのオブジェクトによる順序付けによってプルバックされたこのリストにOrderByを追加することです。
ただし、これによりエラーが発生します。
私はMVCだけでなく、C#全般にも慣れていません。このプロジェクトは私にその場で言語を学ばせてくれたので、素敵に遊んでください:)
ありがとう、
マーク