問題タブ [modelmetadata]
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 - HiddenInput に関する Asp.Net MVC ModedMetadata の質問
メインの Web MVC プロジェクトから分離したい dll に非常に単純なビューモデルがあります。
UI が正しいプレゼンテーション (DisplayName、UIHint、DataType、ReadOnly など) を表示するのに役立つメタデータ属性でモデルを装飾しています。後でこの情報を別のプレゼンテーション レイヤー (Silverlight など) で再利用したいと考えています。
ほとんどの属性は名前空間 System.ComponentModel.DataAnnotations から取得されますが、 HiddenInputがその例外であることを発見して驚いたので、ビューモデル dll に System.Web.Mvc への参照を追加する必要があります。
それを他の属性に含めなかった特定の理由はありますか?
HiddenInput.ascx を editortemplates フォルダーに配置してデフォルトの動作をオーバーライドしようとしましたが、ビューで html.EditorfForModel() を呼び出すと、フィールドのラベルが取得されます。
asp.net-mvc - expression.Compile() vs ModelMetadata.FromLambdaExpression
厳密に型指定された Html ヘルパーを記述するには、よくある問題があります。問題は、プロパティの名前と値のペアを取得する方法です。次の Html ヘルパー宣言があるとします。
私が見つけたいくつかの解決策があります:1。
2.
3. MemberExpression を使用してメンバー名のみを取得する
それらはすべて、最初の外観とは異なる実装を持っています (調査には Reflector を使用しました) が、私は深く掘り下げませんでした。
問題を解決するために非常に多くの方法を試してきましたが、さまざまな状況に適した解決策とその理由を知りたいです。
どんな助けにも感謝します
asp.net-mvc-3 - MVC2 - テンプレート内の親モデル (コンテナー) を取得する方法
DataAnnotations を使用して MVC2 アプリを作成しています。私は次のモデルを持っています:
Bar のカスタム表示テンプレートを作成したいと考えています。次のテンプレートを作成しました。
さて、私の問題は、Bar のテンプレート内で、モデルから別のプロパティにアクセスしたいということです。他のすべての FooModel プロパティをハードコードする必要があるため、FooModel 用に個別のテンプレートを作成したくありません。
デバッガーで簡単に調査した後、次のことがわかります。
this.ViewData.ModelMetadata.ContainerType
ですFooModel
(予想通り)this.ViewData.TemplateInfo
には、 と の2 つの要素を含むVisitedObjects
(タイプ の )非パブリック プロパティがあります。System.Collections.Generic.HashSet<object>
FooModel
DateTime?
FooModel にアクセスするにはどうすればよいですか? Reflection を使って自分のやり方をハックしたくありません。
アップデート:
タイプセーフを可能にする最良の解決策として私には見えるので、ムーティネーターの答えを受け入れました。Mootinatorの回答がそれに基づいているため、Tx3の回答にも賛成しました。それにもかかわらず、この種のシナリオでは、MVC からのより良いサポートが必要だと思います。これは、現実の世界では非常に一般的ですが、サンプル アプリには欠けていると思います。
asp.net-mvc - StringLengthAttribute
Asp.Net MVC 2 を使用しており、メタデータを繰り返し処理して入力コントロールをグリッド列に追加しようとしています。DisplayAttribute、StringLength 属性などのほとんどの属性は、デフォルトのモデル メタデータ プロバイダーによって設定されません。
1- これらの属性は MVC3 でサポートされると思いますよね?
2- MVC3 がリリースされるまで使用できるカスタム プロバイダーはありますか? カスタム メタデータ プロバイダー (MVCContrib にあると思われます) を見たのを覚えていますが、そこでは見つかりませんでした。
asp.net - ASP.NET MVC カスタム ModelMetadataProvider および ModelValidatorProvider
私の ASP.NET MVC アプリケーションでは、データベースで定義されたメタデータ ベースのモデルがあります。データのメタデータを定義するカスタム オブジェクトがあり、DTO にデータセットを使用します。これを表示するために、カスタムの ModelMetadataProvider と ModelValidatorProvider を作成する予定です。
これは正しいアプローチですか?
カスタム ModelMetadataProvider と ModelValidatorProvider に関するポインタはありますか?
asp.net-mvc - MVC ModelMetaData 属性と日付のフォーマットに関する問題
MVC3 RC2 と DataAnnotations で装飾されたモデルを使用して日付をフォーマットする方法を理解しようとしています。
これは私のモデルです...
これは私のコントローラーです...
これが私の見解です...
サイトを実行すると、両方のコントロールについて、文字列に時間が含まれるテキストボックスがページに表示されますが、必要なのは日付だけです (モデルの装飾されたプロパティで指定されています)。
このパターンには、ModelMetaData に関するBrad Wilson の記事を使用しました。
私が間違っていることは明らかですか?
asp.net - ASP.NET MVC 3 HtmlHelper 例外は、継承されたインターフェイスの ModelMetadata を認識しません
MVC 3 RTM にアップグレードした後、以前は機能していた例外が発生します。
これがシナリオです。同じ基になるインターフェイス IActivity と IOwned を使用するオブジェクトがいくつかあります。
他の具象パーシャルから再利用するために IActivity を使用する部分ビューがあります。
これがActivity Partialの定義です。
ただし、例外がスローされます。ModelMetadata で AuthorId が見つかりません。
以前のバージョンでは、IActivity が実装されているインターフェイスを調べていたと思います。
どこでも同様のインターフェースを複製する以外に、アイデア、提案はありますか?
以下のスタックトレースをコピーしました。
asp.net-mvc-3 - ASP.NET MVC3 WebGrid ヘルパーとモデル メタデータ
ASP.NET MVC 3 で WebGrid html ヘルパーを使用して、ModelMetadata にある情報に従って列を自動生成しようとしています。たとえば、オブジェクトのリストを受け入れるビューのコードは次のようになります。
これは実際に魔法のように機能します (実際にはそれほど簡単であることに驚きました)。ここで起こることは、モデルのプロパティから、ShortDisplayName を列のヘッダーとして使用することです。
問題?すべての列にデフォルトのフォーマットを適用する必要があります。基本的に、グリッドが表示するすべてのデータに Html.Raw 拡張子を使用したいと考えています。試行は次のようになります。
メソッド GetPropertyValue は、リフレクションなどを使用してプロパティの値を読み取ります (アイテムは動的であり、その値は実際には現在の行に表示されているオブジェクトであることをここで思い出してください)。
これを行うより良い方法はありますか?
ありがとう、
コスタス
asp.net-mvc-2 - DataAnnotationsModelMetadataProviderのソースコード
何らかの理由で、このクラスを反映しようとすると、.NETReflectorが例外をスローします。それは他のすべてのために働きます。
のソースコードは何DataAnnotationsModelMetadataProvider
ですか?
asp.net-mvc - MVC 3 - IEnumerable モデルの ModelMetaData にアクセスしていますか?
私が取り組んでいるカスタム HtmlHelper の ModelMetaData にアクセスしようとしています。HtmlHelper には次のような署名があります...
(Razor)ビューは次のようになります...
私の問題は、IEnumerable であるため、モデルの ModelMetaData にアクセスできないことです。私は次のことができると思いました:
しかし、奇妙なことに、次のエラーが発生します。
Generic List から Generic IEnumerable にキャストできると思いました。何か不足していますか?