2

私はMVCにまったく慣れていないので、問題に遭遇しました。私はたくさんグーグルで検索しましたが、解決策を見つけることができませんでした。

私は役割を持つ ASP.Net メンバーシップを使用しています。

属性を持つ製品のモデルがあるとしましょう:

  • 名前
  • 美術番号
  • カテゴリー

これをどのように実装すれば、異なる役割がオブジェクトの一部のみを編集できるようになりますか? (たとえば、1 つのロールが製品のカテゴリを変更できないとします。)

同じモデルに対して異なるビュー、または同じオブジェクトに対して異なるモデルを持つことは可能ですか?

一部のプロパティを省略すると、保存時に NULL 値になります。使用してみ@HTML.HiddenFor(...)ましたが、それらのフィールドの検証に失敗しました。

4

1 に答える 1

3

ViewModel はうまくいくように思えます。最も些細なシナリオを除いて、Model と View を密結合すると問題が発生します。

以前にそれらを使用したことがない場合、ViewModel は、レンダリングする特定のビューの単なるクラス (モデル) です。ViewModel で必要なプロパティと検証をカスタマイズしてからモデルにバインドできるため、構造が最も柔軟で操作しやすくなります。

ViewModels http://kazimanzurrashid.com/posts/asp-dot-net-mvc-viewmodel-usage-and-pick-your-best-patternに詳細な紹介があります

編集

その後、ロールごとに ViewModel を持つことができますが、プロパティが特定のロールによって更新されないように保護することだけを考えている場合は、html 入力を無効に設定し、サーバーでそのカテゴリをテストするなどの他の解決策が必要です。値は元の状態のままです (Post リクエストは変更される可能性があるため、常にこのようなテストを実行する必要があることに注意してください)。

于 2012-05-07T09:35:52.997 に答える