問題タブ [editortemplates]

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 に答える
1755 参照

asp.net-mvc - asp.net mvc の editortemplate の複合型の ModelMetadata

次のように宣言されている TestThing 型の複雑なプロパティを含むビューモデルがあります。

各子プロパティのメタデータにアクセスできるようにしたい、このタイプの EditorTemplate があります。たとえば、テンプレートが文字列の場合、 を使用して Prompt テキストにアクセスできます@ViewData.ModelMetadata.Watermarkが、複雑な型であるため、このメソッドを使用することはできません。

代替手段はありますか?

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

asp.net-mvc-3 - ASP.NetMVC3-エディターテンプレートのクライアント側の控えめな検証

ASP.Net MVC 3を初めて使用する場合、カスタムの方法で日付を表示するために作成したエディターテンプレートに対して、クライアント側の控えめな検証を実装しようとしているときに、いくつかの問題に直面します。

UI
日付を3つのtexboxUI形式で次のように表示する必要があります

ここに画像の説明を入力してください


日付を3つの部分に分けて表示するため のEditorTemplateを作成しました。

モデルモデルの サブオブジェクト
の プロパティである生年月日フィールドを、この構造のこのプロパティにバインドする必要があります

クライアント側の検証

IClientValidatableを実装するカスタム検証属性を設定しました

ここで、Day、Month、Yearテキストボックスの要素名をクライアント側の検証要素に送信しようとしています。これにより、後でこれらの要素を使用してクライアント側で検証を行うクライアント側のjquery検証メソッドとアダプターを記述します。


今すぐ表示このエディターテンプレートを使用するには、次の行を表示します

ビューに関連するすべてのjquery検証ファイルを参照として追加しました

質問

  1. IClientValidatableを実装しましたが、これはhtmlの控えめなJavaScript検証属性を出力していません。テスト目的で、このエディターテンプレートを使用していないモデルの別のプロパティに同じ属性(DateTimeClientValidation)を配置すると、それらの検証属性が出力され、このエディターテンプレートに対してのみ出力されません。どこが間違っていたのでしょうか?
  2. エディターテンプレートの検証メッセージスパンに関して、ビューのみに配置するのは正しいですか、それともエディターテンプレートに直接配置する必要があります(@ Html.ValidationMessageFor(m => m.MySubModel.DateofBirth)
  3. この例では、私はデザインに正しく含まれていますか?これは実際にはモデルに配置した属性であるDateTimeClientValidationAttributeを配置しましたが、このコンポーネントはUIについて少し知っています(Day、Month、Year要素を出力しようとしているため)クライアントの名前)、これによりModelはViewについて少し知ることができますが、ここで設計原則を破っていますか?
  4. DateTimeClientValidationAttributeで、クライアントスクリプトが検証を実行できるように、日、月、年の要素名をクライアントに出力しようとしています。ただし、モデルプロパティDateofBirthはサブオブジェクトにあるため、スクリプトの実際の要素名はMySubObject.DateOfBirthであり、Dayテキストボックス名はMySubObject.DateofBirth.Dayになります。GetClientValidationRulesメソッドで完全修飾モデル名を見つけるにはどうすればよいですか。 、クライアントに名前を出すことができるように?

このすべてを読み上げるために辛抱強く、そして答えをありがとう

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

c# - EditorTemplatesのHtml.TextBoxForからClientIdを取得します

EditorTamplatesからJQueryを使用してカレンダーを作成したいと思います。しかし、Html.TextBoxForからの入力テキストのIDを取得するのに苦労しています。また、ビューに複数のカレンダーを配置したいので、その値を直接割り当てることはできず、自分のコントロールのコンテキストに従う必要があります。

景色 :

そしてモデル:

これまでMvContribを試してみましたが、「Filter_StartDate_Date」を取得する予定だった場合、「Date」しか受信しません。

それを解決するための素晴らしいアイデアはありますか?

前もって感謝します、

[編集]

私の見解に以下を追加しました:

しかし、私はそれがかなり嫌いです。それは私には見方をハックするように見えます。どう思いますか?

[/編集]

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

asp.net-mvc-3 - 複合オブジェクトの必須属性

私はこのようなクラスを持っています

私のモデルでは、このように使用します

pagelink プロパティに追加すると、required 属性が起動しません。これを解決するにはどうすればよいですか?

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

asp.net-mvc-3 - ASP.NET MVC 3 でカスタム エディター/表示テンプレートを作成する方法は?

Html.EditorFor()既存のテンプレートの書き換えを含め、ASP.NET MVC でさまざまなデータ型のカスタム エディター テンプレートを作成したいと考えています ( で使用するため)。最終的な目標は、各エディターが変更に関する JavaScript 通知をサポートするミニフレームワークを作成することであり、ページに保存されていない変更があることをユーザーに示すメッセージを表示できます。(もしかしたら、すでに何かある?)

このようなテンプレートの問題に関する多くの質問を見つけることができますが、それらを作成するためのチュートリアルやマニュアルはどこにもありません。彼らはどこに行きますか?特別な構文はありますか? テンプレートはどのように選択されますか? テンプレートにはどのような情報があり、どのようにアクセスすればよいですか? 等。

では、これらのテンプレートの詳細はどこで確認できますか?

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

asp.net-mvc-3 - ASP.NETMVC3データ属性-コントローラーからプログラムでUIHintを設定する

私がこのようなViewModelを持っている場合:

そして、EditorForを使用してフォームフィールドをレンダリングします。

レンダリングされます<input type="text">。涼しい。

しかし、この特定のシナリオでは、私はすでに別のソースから電子メールを取得しており、フォームにこのデータを事前に入力し、テキストボックスの代わりにラベルを表示したいと思います(電子メールを変更したくないため-理由は気にしないでください)。

使用できることはわかって[UIHint]いますが、コントローラーからプログラムで使用できますか?

例えば:

これにアプローチするための最良の方法は何ですか?別のViewModelを完全に使用する必要があります。これは、ビューを強い型から強い型に変更することを意味する可能性がありますか、dynamic使用しないEditorForか、カスタムエディターテンプレートを使用する必要がありますか?

提案/アドバイスをいただければ幸いです。

0 投票する
3 に答える
3423 参照

asp.net-mvc-3 - ASP.NET MVC3のDisplay/ EditorTemplates検索パスに追加できますか?

ソース管理(SVN)の外部フォルダーとして保持したいmvcプロジェクトのテンプレートの標準セットがあります

これは、プロジェクト固有のファイルが間違った場所にコミットされるため、このフォルダーに配置できないことを意味します.. ..標準テンプレートは、MVC自体が使用するテンプレートをオーバーライドする必要があるため、MVCの場所に配置する必要がありますテンプレートのオーバーライドが必要です(例:〜/ Views / Shared / EditorTemplates)

では、プロジェクト固有のものをどこに置くことができますか?

たとえば、それらを〜/ Views / Shared / SiteEditorTemplatesに配置して、検索へのパスを追加する必要がありますか?どうすればいいですか?または他の提案?

ありがとう、アリ

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

asp.net-mvc-3 - ASP.NETMVC3エディターテンプレートのIEnumerableモデルプロパティ

IEnumerableプロパティを持つモデルがあります(従うべき擬似コードを警告します)

同じビューにアドレスサブオブジェクトを表示したい

Person.cshtml

EditorTemplate / AddressModel

マーベラス、すべて正常に動作します

しかし、Gitであるため、テンプレートレイアウトを使用して、すべてのプロパティを標準タイプの方法でラップし始めたいと思います。

そこで、これを行うためにstring.cshtmlとlist.cshtmlを作成し、レイアウトに_Control.cshtmlを使用します

EditorTemplates / _Control.cshtml

EditorTemplates / string.cshtml

(これまでのところイェーイ!でも待って..ああ、いや..)

これが問題です

メインビュー(上記を参照)から

EditorTemplates / list.cshtml

これにより、IDと名前が正しくレンダリングされません。たとえば、Addresses_item_NameのようにIDが含まれていないため、forループを使用してIDを追加します。

これは、MVC式ヘルパーが配列以外のものを許可しないために爆発しますが、EF4.1はサブクエリ内の.ToArrayをサポートしていないため、アドレスはIEnumerable<>である必要があります。

誰かがこれに反対しましたか?それを行うための標準的な方法はありますか?

これは機能しますが、正しいですか?

EditorTemplates / list.cshtml

望ましい構造は

0 投票する
3 に答える
11560 参照

asp.net-mvc-3 - 名前付きテンプレートの MVC EditorFor の問題

(とにかく私には)奇妙な問題のように見えるものがあります...

たとえば、SelectListItem (~/Views/Shared/EditorTemplates フォルダー内の SelectListItem.cshtml) の単純なエディター テンプレートを作成しました。

c.Categories は IEnumerable です

これは問題なく機能しましたが、別のテンプレートでコレクションをわずかに異なるマークアップでレンダリングする必要があったため、エディター テンプレートをコピーして名前を「CategoryIcons.cshtm」などに変更し、次のように呼び出しました。

要するに、唯一の違いは、名前付きエディター テンプレートを指定していることです。

ページを開くと、次のエラーが表示されます。

ディクショナリに渡されたモデル アイテムのタイプは 'System.Collections.Generic.List`1[System.Web.Mvc.SelectListItem]' ですが、このディクショナリにはタイプ 'System.Web.Mvc.SelectListItem' のモデル アイテムが必要です

両方のテンプレート id のテンプレートのモデル宣言:

デフォルトのテンプレートが機能し、名前付きテンプレートが機能しない理由がわかりません。どんな助けでも大歓迎です。

ありがとう。

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

asp.net-mvc-3 - @if + エディター テンプレートのラムダ

正しい構文が見つからないものがあります。

/Views/Shared/EditorTemplates/Component.cshtml

意図が明確であることを願っています...どうすればそこにたどり着きますか(この種のことをグーグルで検索するのは難しいです)?