問題タブ [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 - 文字列用の ASP.NET MVC 表示テンプレートが整数に使用される
最近、ASP.NET MVC 表示テンプレートで問題が発生しました。これが私のモデルだとしましょう:
これはコントローラーです:
これが私の見解です:
何らかの理由ですべての文字列の表示テンプレートが必要な場合は、次のような String.ascx 部分ビューを作成します。
そして、ここに問題があります。実行時に次の例外がスロー されます。
Model クラスの整数プロパティと文字列プロパティの両方に String.ascx が使用されているようです。私はそれが文字列プロパティにのみ使用されることを期待していました - 結局、Object.ascx や Int32.ascx ではなく String.ascx という名前になっています。
これは設計によるものですか?はいの場合 - それはどこかに文書化されていますか? そうでない場合 - バグと見なすことができますか?
c# - ASP.NET MVC 3 汎用 DisplayTemplates
ASP.NET MVC 3 を使用してプロジェクトを開始しました。既存のオブジェクト システムの上に構築しているので、最初に行う必要があるのは、存在するさまざまな型の表示テンプレートとエディター テンプレートを定義することです。
MVC でジェネリック引数を使用して DisplayTemplate を定義することは可能ですか? たとえばBitString<T>
、列挙型をジェネリック引数として取り、提供された列挙型をラップするオプションのリストを表すクラスがあります。すべての BitString インスタンスを処理する単一の Display/Editor テンプレートを定義できることを願っています。
私は現在、ビューにRazorを使用していますが、これを達成するためにascx(またはそれを行う方法がある場合はストレートC#)と混合して一致させることは気にしません
ありがとう
編集:これはこの質問の重複かもしれないと思います...しかし、それは1年半前なので、誰かがこの時点でより良い答えを持っているのでしょうか? ジェネリック部分ビュー: ジェネリック クラスをモデルとして設定する方法は?
c# - コレクションの内容を表示する ASP.NET MVC3 DisplayTemplate を作成するにはどうすればよいですか?
ビューでコレクションの内容を表示しようとしていますが、DisplayTemplate
その特殊なプロパティ/オブジェクトのビューの定義を処理するために a を使用しています。
例えば。
そして foo オブジェクトは..
と...
DisplayTemplates
そこで、このコントローラーの View フォルダーに、というフォルダーを作成しました。Foo.cshtml
次に、次の内容で呼び出されるファイルに追加しました
そして、私は自分のビューに何を表示していますか?
System.Collections.Generic.List`1[MyNamespace.....Foo]
. このコレクションに少なくとも 1 つのアイテムがあることを確認しました。アイデアはありますか?
c# - この状況で何を使用しますか(asp.net mvc 3ディスプレイテンプレート)
私はこのようなものを持っています
「」を使おうとしまし@Html.DisplayForModel()
たが、ビューのviewModelを取得しているようです(私の場合はViewModel1)
ViewModel2を使用するようにする必要がありますが、ViewModel2(モデルオブジェクト)を渡すオプションが表示されません。
それから私は試しました
それはうまく機能しませんでした。最初のプロパティ値のように出力され、セルを作成することさえありませんでした。
これが基本的に私の表示テンプレートです
では、どうすればこれを機能させることができますか?
asp.net-mvc-3 - MvcSiteMap-Model.Nodesを反復処理するときのNullreferenceException。(ASP.NET MVC3 Razor)
MvcSiteMapに問題があります。ModelがNULLであるため、Model.Nodesを介して対話するとNullreferenceExceptionが発生します。
@ Html.MvcSiteMap()。Menu()で動作するようになりましたが、DisplayTemplateからサンプルを試すと、NullreferenceExceptionが発生します。
テンプレートからコードをコピーして貼り付けたので、なぜ機能しないのかわかりません。多分私は何かを忘れましたか?
これが私のコードです:
Mvc.sitemap
TestSiteMap.cshtml
HomeController.cs
私は自分が間違っていることを理解できません!
誰もが助けてくれることを願っています!ありがとう!
asp.net-mvc-3 - @ Html.EditForModel()からフィールドを除外し、Html.DisplayForModel()を使用してフィールドを表示させる方法
私はASP.NETMVCを読んでいて、そのすべての楽しい使い方を読んでいて、DataTemplatesについて知りました。
このことをテストするために急いで、私は私のより単純なモデルの1つを使用に変換しました@Html.DisplayForModel()
、@Html.EditForModel()
そしてそれはそれがそうであるという幸運な魅力のように働きました:)
しかし、すぐに気付いたのは、表示ビューに表示するフィールドを簡単に定義することはできなかったが、編集用にまったく存在しないことでした...
asp.net-mvc - コレクション内の各アイテムにDisplayTemplate(DisplayForを使用)を使用する
Comment
クラスのDisplayTemplateを作成し、その中に配置しましたComment/DisplayTemplates/Comment.cshtml
。
Comment.cshtml
正しく入力されています:
次に、IEnumerable<Comment>
forモデルをとる部分ビューがあります。Comment
そこで、コレクションをループして、クラスにDisplayTemplateを使用したいと思います。ビュー、その整合性:
ただし、次のHtml.DisplayFor
行でエラーが発生します。
ディクショナリに渡されるモデルアイテムのタイプは「System.Int32」ですが、このディクショナリにはタイプ「System.String」のモデルアイテムが必要です。
foreach
ループ内の各アイテムに対してDisplayTemplateを呼び出すにはどうすればよいですか?
asp.net-mvc - MVC 3 複数の DisplayFor-Templates
バスケット アイテム リストのカスタム テンプレートを作成しようとしています。アイテムがウェブページ上にあるかメールにあるかによって、アイテムを表示する方法が異なるため、いくつかの異なるテンプレートが必要です。今私の問題は、デフォルトの名前を使用すると問題なく動作することです。
しかし、テンプレート名を追加しようとすると、テンプレートは BasketItem ではなく、リスト タイプの IEnumerable である必要があると期待されます。
私の間違いがどこにあるのか、またはなぜそれが不可能なのかについてのアイデアをいただければ幸いです。ありがとう。
asp.net-mvc - UIHint を使用した ASP.NET MVC 3 カスタム表示テンプレート - For ループが必要ですか?
次のようなViewModelがある場合:
そして、次のような HTML の行を持つ厳密に型指定されたビュー:
そして、このような署名を持つ表示テンプレート:
「モデル項目のタイプは ですList<SomeViewModel>
が、このディクショナリにはタイプのモデルが必要SomeViewModel
です。」というエラーが表示されます。
これは理にかなっていますが、MVC の組み込みのテンプレート スマートが作動することを望んでいましIEnumerable
たHtml.DisplayFor
。
それで、[UIHint]
その機能をオーバーライドするように見えますか?
Html.DisplayForModel()
明らかに、コレクションを受け入れて を呼び出し、基本的に MVC スマートをエミュレートする別のテンプレートを指すことができます。しかし、私はそれを避けることを望んでいます。正直なところ、その1行の「ラッパー」テンプレートを使用するよりも、foreachループを実行したいと思います。
より良いアイデアはありますか?
私が言いたいのは、「ねえ、MVC、これらの人たちのそれぞれのテンプレートをレンダリングしてください。しかし、名前規則を使用してテンプレートを見つける代わりに、ここにヒントがあります」.
c# - 辞書でエディターとディスプレイのテンプレートを使用する方法はありますかASP.NET MVC3では?
モデル(またはサブモデル)がオブジェクトである場合、通常はエディターテンプレートと表示テンプレートを使用します。このようにして、いくつかのforeach構造List<T>
でコードを「台無しにする」ことを避けます。
モデルがオブジェクトである場合に、エディターテンプレートと表示テンプレートを使用する方法があるかどうかを知りたいと思いました。Dictionary<K,V>
ありがとう
フランチェスコ
PS:Razorでの回答はもっとありがたいです