問題タブ [display-templates]

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

asp.net-mvc - インターフェイスに使用されない表示テンプレート

表示テンプレートと、インターフェイスおよびインターフェイスを実装するオブジェクトの処理に問題があります。この例では、固定された方法でレンダリングしたい多くのオブジェクトがあり、インターフェイスを作成し、共有表示テンプレート フォルダーに配置することにしたビューでこれを参照することにしました。 DisplayForビューにインターフェイスを実装する渡されたオブジェクトに対して機能するように縫い目がありません。これに対する解決策を知っている人はいますか。

おそらくコードで説明する方が簡単なので、簡単な例を書きました。基本インターフェースとそれを継承する 2 つのクラス:

共有表示テンプレートの表示テンプレートの例

ビューに渡されるビューモデルの例

コントローラー (この場合はモック情報を作成するため)

そして最後に、私が期待するDisplayForビュー

すべてのオブジェクトがビュー モデルでインターフェイスとして定義されている場合、表示テンプレートを使用できないのはなぜですか?

私が見つけた1つの解決策は、単にコードを使用することです

要約すると、質問は次のとおりです。

なぜこれが起こるのですか?どのタイプの実装が実際に共通の共有ビューを見ているべきかをDisplayFor正しく理解する方法はありますか?CatIPetIPet.cshtml

ありがとう

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

asp.net-mvc-3 - C#MVC3Razor-DisplayTemplateを使用してDisplayTemplateを呼び出す

簡単な商品リストがあります。商品は2つの異なるカテゴリに分類され、カテゴリIDに応じてページに表示が異なります。

同じモデルタイプのDisplayTemplatesをネストすることは可能ですか?

これを試してみましたが、壊れませんが、どちらも機能しません。製品テンプレートは期待どおりに実行されます。製品リストの対応する各アイテムを正しく出力するデバッグテキストを追加しました。テンプレートエンジンには、同じテンプレートへの再帰呼び出しがこのシナリオの可能性であるため、テンプレートエンジンがそれ自体の裏側に消えないようにするための、ある種のブロッキング句があると思います。 foreachループでリストを反復することなく、リストの複数のDisplayTemplateを処理する方法。

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

razor - ASP.NET MVC 4は、文字列のみの表示テンプレートを定義します

文字列プロパティのみの表示テンプレートを作成し、他のすべてにはデフォルトを使用したいと思います。

次の内容でViews/Shared/DisplayTemplatesにstring.cshtmlを作成しようとしました。

DisplayFor(m => m.property)を使用するビューを開こうとすると、次のようなエラーが表示されます。ディクショナリに渡されるモデルアイテムのタイプは「System.DateTime」ですが、このディクショナリにはタイプ'System.String'のモデルアイテム。または:ディクショナリに渡されるモデルアイテムのタイプは「System.Int64」ですが、このディクショナリにはタイプ「System.String」のモデルアイテムが必要です。

使用するすべてのタイプに表示テンプレートを追加することでこれを解決できることは知っていますが、カスタムテンプレートが定義されていないすべてのタイプに「デフォルト」テンプレートを使用することも可能だと思いますか?

更新 ダリンの答えの後、私はブラッドのチュートリアルをチェックし、テンプレートを次のように変更しました。

これは「デフォルト」テンプレートに基づいており、すべてのタイプで機能します。

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

asp.net-mvc-3 - mvc3 razor でカスタム データ型を作成して実装する方法

問題を何度もグーグル検索しました。しかし、これを行うための解決策を見つけることができませんでした。

DataTypeデフォルトEditorTemplateでカスタムを作成し、 mvc3 razorDisplayTemplateで使用したいと考えています。

モデル

ビュー - かみそり

実際には、デフォルトのエディター テンプレートとディスプレイ テンプレートを使用して、再利用可能なデータ型を作成したいと考えています。

何か提案はありますか?便利なリンクを教えていただけますか、できれば簡単な例を教えてください。前もって感謝します。

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

c# - ASP.NET MVC 3 Razor DisplayFor Delegate

このエラーが発生します:

テンプレートは、フィールドアクセス、プロパティアクセス、単一次元配列インデックス、または単一パラメーターのカスタムインデクサー式でのみ使用できます。

これが私のコードです(カスタムHTMLヘルパー、DisplayForをラップして、テンプレートを選択できるようにします):

私がこのようにそれを使うとき、それは働きます:

modelはのプロパティがあるためLocationTypeです。

しかし、別のカスタムHTMLヘルパーでこれを行うと:

エラーです。

DisplayLocationTypeFor代わりにヘルパーを使用するように変更できますが、htmlHelper.Display方法がわかりません。

何か案は?

私がやろうとしているのは、モデルをレンダリングする特定の方法がありLocationType、サイト全体で実行したいということです。内部的には、テンプレートはリソースファイルを使用し、URLに基​​づいて他のいくつかのスマートを使用します。言い換えれば、私が繰り返したくない論理があります。

このように、すべてのビュー/テンプレートは、をレンダリングする標準的な方法としてこのテンプレートを呼び出しますLocationType

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

asp.net-mvc-3 - ジェネリックの表示テンプレート - ビューが見つかりません

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

汎用モデル

私のコントローラーのアクションは次のとおりです。

そして私の見解は次のとおりです。

Views/Shared/DisplayTemplate フォルダーに GenericModel.cshtml というファイルがあります。

このビューは見つかりません。モデルのタイプの名前を出力すると、「GenericModel 1". Seeing that, I renamed my template "GenericModel1.cshtml」が表示されます。これはハックのように思えます。これに頼らずにこの表示テンプレートを見つける簡単な方法はありますか?

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

asp.net-mvc - ASP.NET MVC DisplayTemplate を暗黙的に使用する

cshtmlビューにこのようなコードがあります

私の ~/Views/Display フォルダーには、これを含む DateTime.cshtml というファイルがあります

そのため、私のビューは CreatedDate の 2 つのバージョンをレンダリングしています。1 つは完全な DateTime 文字列で、もう 1 つは短い日付文字列です。

DisplayFor を明示的に呼び出さずに、DateTime を表示するたびに作成した表示テンプレートを使用するように ASP.NET MVC4 プロジェクトを構成できますか? つまり、「@record.CreatedDate」行で DateTime テンプレートを使用するにはどうすればよいですか?

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

asp.net-mvc-4 - displaytemplateで親viewmodelのプロパティにアクセスしてみてください

部分的なビューとdisplay/editortemplatesおよびKendouiを利用するasp.netmvc4アプリケーションを構築しようとしています。特定のページのビューモデルがあります。

また、葉、虫としての花には独自の特性があります。例:

ビューで部分ビューを使用しているので、ajaxでの更新がより簡単になります。私の通常のビュー:PlantDetail.cshtml

私の部分ビュー「_leafs」(および「_flowers」)には、LeafIdとPlantIdを必要とするアクションを呼び出す一連のボタンがあります。

部分ビュー"_leafs":

私のdisplayTemplate"Leaf.cshtml":

今、私の問題は、displaytemplateで親ビューモデルのPlantIdにアクセスできないように見えることです。(そして、各displaytemplatesで同じ問題が発生します。)url.actionのroutevaluesですでに試しましたが、最終的にjavascriptでPlantIdにアクセスできることはわかっていますが、(mvc)方法はありますか? displaytemplatesを使い続け、私のplantIdを子のLeafビューモデルのプロパティとして複製しませんか?

私はすでに、displaytemplateで「@ HttpContext.Current.Request.RequestContext.RouteData.Values ["controller"]。ToString()」のようなものでparentviewcontextにアクセスしようとしましたが、私の値が見つからないようですPlantId(そこに保存されている場合でも..)。

他の誰かがまだいくつかの提案がありますか?