問題タブ [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.
asp.net-mvc - インターフェイスに使用されない表示テンプレート
表示テンプレートと、インターフェイスおよびインターフェイスを実装するオブジェクトの処理に問題があります。この例では、固定された方法でレンダリングしたい多くのオブジェクトがあり、インターフェイスを作成し、共有表示テンプレート フォルダーに配置することにしたビューでこれを参照することにしました。 DisplayFor
ビューにインターフェイスを実装する渡されたオブジェクトに対して機能するように縫い目がありません。これに対する解決策を知っている人はいますか。
おそらくコードで説明する方が簡単なので、簡単な例を書きました。基本インターフェースとそれを継承する 2 つのクラス:
共有表示テンプレートの表示テンプレートの例
ビューに渡されるビューモデルの例
コントローラー (この場合はモック情報を作成するため)
そして最後に、私が期待するDisplayFor
ビュー
すべてのオブジェクトがビュー モデルでインターフェイスとして定義されている場合、表示テンプレートを使用できないのはなぜですか?
私が見つけた1つの解決策は、単にコードを使用することです
要約すると、質問は次のとおりです。
なぜこれが起こるのですか?どのタイプの実装が実際に共通の共有ビューを見ているべきかをDisplayFor
正しく理解する方法はありますか?Cat
IPet
IPet.cshtml
ありがとう
asp.net-mvc-3 - C#MVC3Razor-DisplayTemplateを使用してDisplayTemplateを呼び出す
簡単な商品リストがあります。商品は2つの異なるカテゴリに分類され、カテゴリIDに応じてページに表示が異なります。
同じモデルタイプのDisplayTemplatesをネストすることは可能ですか?
これを試してみましたが、壊れませんが、どちらも機能しません。製品テンプレートは期待どおりに実行されます。製品リストの対応する各アイテムを正しく出力するデバッグテキストを追加しました。テンプレートエンジンには、同じテンプレートへの再帰呼び出しがこのシナリオの可能性であるため、テンプレートエンジンがそれ自体の裏側に消えないようにするための、ある種のブロッキング句があると思います。 foreachループでリストを反復することなく、リストの複数のDisplayTemplateを処理する方法。
razor - ASP.NET MVC 4は、文字列のみの表示テンプレートを定義します
文字列プロパティのみの表示テンプレートを作成し、他のすべてにはデフォルトを使用したいと思います。
次の内容でViews/Shared/DisplayTemplatesにstring.cshtmlを作成しようとしました。
DisplayFor(m => m.property)を使用するビューを開こうとすると、次のようなエラーが表示されます。ディクショナリに渡されるモデルアイテムのタイプは「System.DateTime」ですが、このディクショナリにはタイプ'System.String'のモデルアイテム。または:ディクショナリに渡されるモデルアイテムのタイプは「System.Int64」ですが、このディクショナリにはタイプ「System.String」のモデルアイテムが必要です。
使用するすべてのタイプに表示テンプレートを追加することでこれを解決できることは知っていますが、カスタムテンプレートが定義されていないすべてのタイプに「デフォルト」テンプレートを使用することも可能だと思いますか?
更新 ダリンの答えの後、私はブラッドのチュートリアルをチェックし、テンプレートを次のように変更しました。
これは「デフォルト」テンプレートに基づいており、すべてのタイプで機能します。
asp.net-mvc-3 - mvc3 razor でカスタム データ型を作成して実装する方法
問題を何度もグーグル検索しました。しかし、これを行うための解決策を見つけることができませんでした。
DataType
デフォルトEditorTemplate
でカスタムを作成し、 mvc3 razorDisplayTemplate
で使用したいと考えています。
モデル
ビュー - かみそり
実際には、デフォルトのエディター テンプレートとディスプレイ テンプレートを使用して、再利用可能なデータ型を作成したいと考えています。
何か提案はありますか?便利なリンクを教えていただけますか、できれば簡単な例を教えてください。前もって感謝します。
c# - ASP.NET MVC 3 Razor DisplayFor Delegate
このエラーが発生します:
テンプレートは、フィールドアクセス、プロパティアクセス、単一次元配列インデックス、または単一パラメーターのカスタムインデクサー式でのみ使用できます。
これが私のコードです(カスタムHTMLヘルパー、DisplayForをラップして、テンプレートを選択できるようにします):
私がこのようにそれを使うとき、それは働きます:
にmodel
はのプロパティがあるためLocationType
です。
しかし、別のカスタムHTMLヘルパーでこれを行うと:
エラーです。
DisplayLocationTypeFor
代わりにヘルパーを使用するように変更できますが、htmlHelper.Display
方法がわかりません。
何か案は?
私がやろうとしているのは、モデルをレンダリングする特定の方法がありLocationType
、サイト全体で実行したいということです。内部的には、テンプレートはリソースファイルを使用し、URLに基づいて他のいくつかのスマートを使用します。言い換えれば、私が繰り返したくない論理があります。
このように、すべてのビュー/テンプレートは、をレンダリングする標準的な方法としてこのテンプレートを呼び出しますLocationType
。
asp.net-mvc-3 - ジェネリックの表示テンプレート - ビューが見つかりません
私は次のクラスを持っています:
汎用モデル
私のコントローラーのアクションは次のとおりです。
そして私の見解は次のとおりです。
Views/Shared/DisplayTemplate フォルダーに GenericModel.cshtml というファイルがあります。
このビューは見つかりません。モデルのタイプの名前を出力すると、「GenericModel 1". Seeing that, I renamed my template "GenericModel
1.cshtml」が表示されます。これはハックのように思えます。これに頼らずにこの表示テンプレートを見つける簡単な方法はありますか?
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 テンプレートを使用するにはどうすればよいですか?
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(そこに保存されている場合でも..)。
他の誰かがまだいくつかの提案がありますか?