問題タブ [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.

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

asp.net-mvc - ASP.NET MVC 2アプリケーションのEditorForがArgumentNullExceptionをスローするのはなぜですか?

私の見解の1つで、EditorForに奇妙な問題があります。次のコードは、ArgumentNullExceptionをスローします。

ただし、次のコードは問題ありません。

Model.Nameは文字列変数であり、設定されています。

EditorForは別のビューで動作します。このビューがクラッシュするまで、開発Webサーバー(Cassini)を再起動する必要があります。そうしないと、すべてのEditorFor呼び出しが同じメッセージでクラッシュします。

洞察が得られることを期待して、MVC 2ソースを使用してテストを実行しましたが、問題なく機能しました。おそらく、そこにあるMVC 2 RTMソースはVS2010のものであるはずです(日付は結びついているようです)。

TextBoxForに切り替えたところですが、問題は何ですか。.NET 4、VS2010、およびWin7x64で実行しています。

[更新:同じ問題がDisplayForで発生します。]

部分的なスタックトレースは次のとおりです。

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

asp.net-mvc - ASP.NET MVC 3 RC での既定の EditorFor テンプレート選択のオーバーライド

現在 EditorFor を使用して多くのビューを生成する MVC アプリケーションを作成しています。ビュー全体は、基本的に単なる EditorForModel であり、うまく機能します。ただし、解決策が見つからないように見える小さな問題が 1 つあります。それが必要な方法で機能することが重要です。それは、EditorFor をインターフェイスにレンダリングしようとするときです。バインディングとそのようなものはすべて処理されていますが、問題は、EditorFor がそれがインターフェイスであると認識し、デフォルトで「オブジェクト」テンプレートになることです。インターフェイスを調べて、その名前のテンプレートが見つかるかどうかを確認する必要があります。見つからない場合は、存在するすべてのインターフェイスを調べて、それらのいずれかに一致するかどうかを確認する必要があります。より簡単に説明するには、次の例を見てください。

インターフェース:

model = "IAppMusicProvider" でビューを作成し、実行するHtml.EditorForModel()と、"~Views\Shared\EditorTemplates\IAppProvider.cshtml" テンプレートを見つける必要があります。これを達成できる簡単な方法はありますか?

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

asp.net-mvc - Html.EditorFor() に相当するコード

コントローラーから Html.EditorFor() と同等の機能を呼び出す方法を知っている人はいますか?

ビューに標準テーブルがあります。行は EditorTemplate を利用します

エディター テンプレートは、子要素と子要素を返す厳密に型指定された部分ビューです<tr>

これですべて問題なく動作しますが、次のステップは「行を追加」ボタンを追加することです。ここでは範囲外の多くの理由により、純粋にクライアント側のソリューションではなく、サーバーにアクセスしたいと考えています。私がやろうとしているのは、EditorTemplate を Partial View として返し、JavaScript で返された Html をテーブルに追加することです。

入力の命名を除いて、すべてが正常に機能します。欠落している部分は、ポストバックでモデルを再構築する方法を Model Binder に指示するコレクション プレフィックスです。ビュー側では、これがどうあるべきかを指定できます (それは上記の呼び出しの"Rows["+j+"]"一部です)。EditorFor()

EditorFor() のように、部分ビューに html フィールド名のプレフィックスを付けることはできますか? これを機能させる方法について何か考えはありますか?私のアプローチ全体が完全に間違っているかもしれませんが、それは問題ありません。理由を教えてください。:)

ご協力いただきありがとうございます。

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

asp.net-mvc-2 - Asp MVC 2: 型付きエディター テンプレート

(このテキストではこのチュートリアルを参照しています)

Html.EditorFor (または Html.Editor) ヘルパーを使用したいと考えています。

UserControl に追加のデータが必要な場合は、経由で渡されます

...EditorFor(model => model.Album, new { Artists = Model.Artists, ... })

UserControl では、ViewData[ stringKey ]を介してアクセスされます。

... new SelectList(ViewData["Artists"] as IEnumerable, ...

特定のデータが利用可能であることを保証する強く型付けされたViewModelを好むので、これは少し怪しいにおいがします。

「入力された方法」を見つけるか、この方法をそのまま受け入れる必要があるのか​​ わからないので、私は今少し行き詰まっています。

この問題をどのように解決しましたか? どんな助けでも大歓迎です!

ラグワラッパー
_

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

asp.net-mvc - asp.net mvc のモデルの再利用可能な ajax エディターが ajax に移行しない

わかりましたので、mvcは初めてです。今作っているのは「ユーザーフォームの作成」です。UserViewModel には、タイプ の branchcode プロパティがありlongます。コードのプレーンテキストボックスの代わりに、テキストボックスとチェック名のリンクがある小さなブランチセレクターが必要です。クリックすると、ブランチの名前と ajax が返されます。

そこで、ブランチ セレクターを作成し、Shared/EditorTemplates の下に配置しました。こんな感じ

ビューモデルに UIHint を設定しているので、EditFor(model.BranchName) と言うと、次のように完全に表示されます。 代替テキスト

私の問題:

1. ajaxがない!クリックすると、URL が表示されます: http://localhost:1159/Admin/Home/BranchDetail?brcd=0そして、BranchDetailsView がどこにもないため、URL はエラーをスローします。

コントローラは次のようになります。

2.もう 1 つの問題は、AjaxLink がどのコードをどのように入力したかを返すようにするにはどうすればよいかということです。スクリーンショットに気付いた場合、リンクへの URL にはbrcd=0. 支店コードをコントローラーに送りたい!エディター内の入力ボタンを試しBeginRouteFormてみましたが、ページ作成フォーム全体を送信してしまいますか? それはこれを行う正しい方法でしょうか?

注:T4MVCも使用しています。最初は忘れていましたが、作成ページでmicrosoft.ajax.jsとの両方を参照しました。microsoft.mvc.ajax.js


更新: これを JQuery で動作させることができました。これは非常に素晴らしくシンプルなようです。Ajax.BeginFormしかし、 MVCを学んでいるので、この種のことが一般的にどのように行われるかを本当に知りたいです。

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

c# - ビューの入力項目にクラス名のプレフィックスを付けるように EditorFor を強制しますか?

私は EditorFor を持っています:

これにより、(予想どおり) 正常にビューにバインドされますが、モデルがポストされたときにバインドがバインドされません。これは、フォーム ID の先頭に「クライアント」が付いていないためです。

通常、この状況では、モデルを渡し、入力をテンプレートの model.Client.PropertyName にバインドしますが、この場合、テンプレートが 2 つの異なるビューモデル (クライアントがオンになっている) で使用されるため、これはオプションではありません。

これを適切にバインドするための提案はありますか?

どうもありがとう、コーハン。


補遺

これは私の誤解だったようです。私が理解している問題は、fluentHtml が EditorFor Templates 内で機能しないことです。(同じことがこの修正にも当てはまります。これは、fluentHtml を通常の mvc html ヘルパーに置き換えると、EditorFor が自動的にプレフィックスを付けてくれるため、不要であることが判明しました)

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

c# - FluentHtml を使用して EditorFor Templates で成功した人はいますか?

私はそれがロングショットであることを知っていますが、誰かがeditorFor Template内でFluentHtmlを使用して成功したかどうか疑問に思いまし.

具体的には、プレフィックスを機能させて、送信時にビューモデルがバインドされるようにします。

上記の例では、すべてのフォーム html 入力 (名前と ID) の前に Client を付けて、正しくバインドし直します。しかし、fluent を使用する場合はそうではありません。

Fluent Html の例。

現時点では、プレフィックスを使用して ID を手動で設定することを検討していますが、これは理想的ではありません。

流暢な Html を削除することもできますが、「無効」に設定する機能が失われます。

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

javascript - さまざまなコンテキストのモデル用のJavaScriptとEditorFor

EditorForJavaScriptコード/具体的にはjQuery/を作成して、対応するエディターテンプレートを介して生成されるHTMLコードを処理するにはどうすればよいですか?

重要なのは、というモデルがあるかもしれませんPostCode(またはZip、実際には重要ではありません)PostCode.ascx。フォルダ内にがあり、「親」モデルのさまざまな親ビューでEditorTemplatesこの部分的なビアをレンダリングします( 、などの場合があります)。 )。。EditorForAddressCompany

でレンダリングするときはEditorFor、必要なプレフィックスがレンダリングされることを確認してAddress.PostCode.postname、バインディングが引き続き機能するようにします(コントローラーアクションにポストバックすると、それを取得して正しいナビゲーションプロパティ/参照を設定します)。

問題は、IDと名前の属性がレンダリングする場所によって変わることです。その場合、どういうわけか調整されたJSをレンダリングする必要があります。

他の唯一のオプションは、RenderPartial私が以前持っていたものを使用することであり、タグのIDまたは名前を変更しませんが、HTMLでプレフィックスをレンダリングせず、そのようなバインディングが失敗するため、結果として機能しません。

うまくいけば、あなたは私が何を意味するのかを理解し、誰かがすでにこれを理解している

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

c# - Html.EditorForを複合オブジェクトで動作させるにはどうすればよいですか?

私はスタイルの問題に直面しています。現在、aspmvcフレームワークを使用してサイトを構築しています。私はテンプレートのhtml.EditorForオプションの大ファンで、本当に素敵なフォームを生成します。すべての入力フィールドを自分でプログラミングするのは本当に嫌だからです。ただし、複合クラスではうまく機能しません。次のようなクラスがある場合:

EditorFor関数で名前と住所のデータを要求する素敵な登録フォームを生成したいのですが、クラスごとにeditortemplateを作成する必要があるようです。クラスを変更することにした場合、これは厄介です。

そこで私はあなたに尋ねています。これを機能させる良い方法はありますか?すべてのフォームのテンプレートを自分で作成しなくても、EditorForで適切なフォームを生成するには、どのような設定が必要ですか?

繰り返しになりますが、これらのフォームを作成する必要があることはあまり気にしません。クラスを簡単に操作できるように、システムにそのようなことをさせたいだけです。

0 投票する
12 に答える
64613 参照

c# - MVCとEditorFor幅

ビューでEditorForコントロールの幅を設定できますか?

私はいくつかのパラメータを設定しました:

ただし、レンダリングされるテキストボックスの幅を設定できないようです。

これはどういうわけか行うことができますか?

私は試した:

しかし、喜びはありません...