問題タブ [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.

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

asp.net-mvc - ASP.NET MVC ModelMetadata - モデルの UI を記述するために属性を配置すると、関心の分離に違反しますか?

このブログ投稿によると、 「ModelMetadata オブジェクトは、主に System.ComponentModel および System.ComponentModel.DataAnnotations 名前空間の属性から取得したデータで構築されます。」

Model オブジェクト ( DisplayFormatまたはUIHint )に UI ヘルパー属性を配置することで、Model と View を結合していませんか?

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

asp.net-mvc-3 - Html.LabelForはDisplayAttributeのNameを使用しません

私はこのようなモデルを持っています

そして私のメタデータクラスはこのように

ビューでこのモデルを使用すると、DisplayAttributeからの名前を使用するように取得できませんか?

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

php - RedBean PHP:データベース列が変更されないように保護する方法はありますか?(例:insertion_date)

想像できる限り多くのORMをすでに使用しています。現在、私はRedBeanPHPに夢中/嫌いです。ここに行きます...それを数時間研究した後、私はこの非常に基本的な問題を解決するためのより良い方法が何であるかについて疑問を抱きました(最良の方法は、この場合、RedBeanの使いやすさの哲学によりよく適合する方法を意味します):

クラスの一部のプロパティへのアクセスを制限して、特定の種類の誤ったデータ操作を防ぐことができるのは非常に一般的です。これは通常、ゲッターとセッターをうまく利用して実現されます。ただし、RedBeanについてすでに知っている限り、ネイティブクラスには正式なセッターはなく、データベースで変更および永続化できるパブリックプロパティのみがあります。

私がやりたいのは、いくつかのプロパティが手動で変更されないように保護することです。そうすれば、他のプログラマーが次のような奇妙なことをするのを避けることができます。

もちろん、そのフィールドは行の挿入後に変更されるべきではありませんが、誰も変更しないと信じることはできません。保護されたプロパティをinsertion_dateに変更したり、何らかの方法でアクセスできないようにするなどの方法はありますか?

そのための最善の方法は$beam->setMetadata()、特定のプロパティを変更してはならないことを宣言することだと思いますが、RedBeanでこれを実現する方法がわからず、公式マニュアルで十分な情報を見つけることができませんでした。どんな助けでも大歓迎です。

読んでくれてありがとう。

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

asp.net-mvc-3 - 基準に基づいて実行時に読み取り専用になるようにモデルメタデータのフィールドを変更します

ページを編集するための汎用インターフェイスを作成しています。一部のページ、たとえばスタートページでは、一部のフィールドを無効にするか削除する必要があります。フォームはHtml.EditorForでレンダリングされます。これを行うための最良の方法は何ですか?

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

asp.net-mvc - ModelMetaData を使用してモデルをキーと値のペアにシリアル化するためのすぐに使えるコードはありますか?

ModelMetadata は、モデルの値をフィールドにバインドするために使用されることを知っています。モデルを取得し、その ModelMetadata を使用してすべてのプロパティの値の KeyValuePairs を生成する、すぐに使用できる MVC コードはありますか?

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

asp.net-mvc-3 - MVC HtmlHelper vs FluentValidation 3.1: ModelMetadata IsRequired を取得する際の問題

関連するフィールドが必要な場合、そのラベルの名前の後に星を付けるラベルの HtmlHelper を作成しました。

ViewModel のプロパティで DataAnnotations を使用して [Required] をスラップすると、プライベート LabelHelper の metadata.IsRequired は True に等しくなり、すべてが意図したとおりに機能します。

ただし、FluentValidation 3.1 を使用して、次のような単純なルールを追加すると:

... 私の LabelHelper メタデータでは、IsRequired が誤って false に設定されます。(ただし、バリデーターは機能します。空のフィールドを送信することはできず、電子メールのようなものである必要があります)。
残りのメタデータは正しいように見えます (例: metadata.DisplayName = "Email")。
理論的には、Rule .NotNull() が使用されている場合、FluentValidator はプロパティで RequiredAttribute を平手打ちします。

参考までに:私のViewModel:

私のコントローラー:

どんな助けでも大歓迎です。

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

asp.net-mvc - モデルプロパティの1つのModelMetadataに連絡する

私はブラッドウィルソンの記事の1つを読んでいました:

ASP.NET MVC 2テンプレート、パート2:ModelMetadata

http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-2-modelmetadata.html

ASP.NET MVC 3アプリで、次のモデルがあると仮定します。

そして、これが私の見解です:

パス内にContact.cshtmlファイルがあり~/Views/Shared/EditorTemplates/ます。

ModelMetadata私の質問は、各モデルプロパティにどのように連絡できるかです。たとえば、次のようになります。

Contact.cshtml

注: GetItsMetaDataメソッドは、私が完全に作成したものです。プロパティのMedelMetadataにアクセスしようとしています。そのようにする必要はありません。

編集

私は別の同様の質問を見つけました:

asp.netmvcのeditortemplateの複合型のModelMetadata

そして答えはこれです:

しかし、私のモデルのすべてのプロパティに対してこれを行うのは非常に冗長ですよね?

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

entity-framework - デスクトップ アプリケーションで DataAnnotations を使用する方法

EF(fe) viaを使用している場合、メタデータを渡すことができるかどうかを検出するためにMVC使用できます。しかし、デスクトップ (win-forms / wpf) アプリケーションでメタデータを使用するにはどうすればよいですか?ModelState.IsValidmodelDataAnnotationsDataAnnotations

もっと:

ModelState実際、私は(それぞれに関連付けられたプロパティとメッセージを保存できる辞書)と同じオブジェクトを作成したいと考えています。次に、 を でラップし、DALメタvalidation-layerデータVLを使用してモデルを検証し、VLを任意のプロジェクトで使用できるようにします。リフレクターを使用する必要があることは知っていますが、経験がありません。ヘルプと提案に感謝します。

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

asp.net-mvc-3 - 領域内の ModelMetadataProviders.Current を変更する機能

アプリケーションで複数の ModelMetadaProvider を使用する機能が必要な特殊なケースがあります。特定の地域では特定のプロバイダーを使用し、別の地域では別のプロバイダーを使用します。これらのプロバイダーはそれぞれ、リソース文字列を提供するために異なるリソース ファイルを使用するため、主にこれが必要です。

私はそれを 1 つで動作させ、global.asax.cs に接続します。

今、管理エリアで私はこれをしたい:

上記は機能しませんが、エラーもスローしません。リソース文字列の検索を行わないだけです。

これは達成可能ですか?