0

Clientsを持つsのセットアップがありますUser

簡単に言えばClient

[Required]
public string Name { get; set; }

そして、Userそのプロパティの中で、

[Required] 
public virtual Client Client { get; set; }

sの作成Userに関しては、Usersは特定Clientのsの下に作成されます(明らかに)

つまり、User作成ページで、ClientIdをViewbagにスローしUserて、作成コントローラーに送信できるようにします。

私が最初に直面した問題Modelstate.IsValidは、モデルが作成するモデルに必要なものがないfalseためです。クイックフィックス:名前もスローして返します。ClientUserName

これは検証に合格Clientし、コードで適切に取得して自分に割り当てUser、新しいUseryadayadaを保存できます...

これは奇妙な、1回限りのスタイルのセットアップではないと確信しています。私が現在行っている混乱ではなく、これを行うための「適切な」方法がなければなりません。

Client1)新しいものを割り当てたいものを「適切に」提供/維持するにはどうすればよいUserですか?

2)上記が不可能な場合、それを行うための最良の方法は何ですか?私は現在フィールドにを格納していますが、バインディングからを完全に削除するを使用するClient.Id以外に、データを渡してすべてを検証する方法がわかりません。User.Client.Id[Bind(Exclude="Client")]ClientUserClient

ありがとうございました。

4

1 に答える 1

0

エンティティをビューに直接渡すのではなく、ビュー モデルを使用している場合、これは問題になりません。

ビュー モデルを使用する理由の 1 つは、ビューにはデータ モデルとは異なる要件があるためです。この場合、ビューにクライアント情報はまったく必要ありません (どこかに表示している場合を除きます)。新しいユーザーを作成しているだけで、ビュー モデルを投稿すると、送信された情報から新しいエンティティが作成されます。その時点で、ClientID を割り当てるだけで、新しいユーザーを保存できます。

于 2013-02-19T18:39:47.913 に答える