5

I use entity Framework 4.2 and MVC 4

I Got this model/Database structure

UserInformation
UserID(PK)
FirstName
LastName
Email


UserFavoriteColor
FavID(PK)
Color
Why
UserID(FK)

Is it possible in one Create Controller Action to fill the UserInformation table and then Fill the UserFavoriteColor.

I Know I could perform this in two steps by creating 2 separates sectiosn. But this is not what I want.


enter image description here

4

1 に答える 1

7

通常、jQuery を使用して新しい行を挿入します。私たちはあなたのコードがどのように見えるか分からないので、これがどのように行われるべきかを正確に示すことは困難ですが、ここで例を見ることができます:

http://ivanz.com/2011/06/16/editing-variable-length-reorderable-collections-in-asp-net-mvc-part-1/

秘訣は、保存をクリックしたときにモデル バインダーがそれらをコレクションに追加するように、適切な名前を付ける必要があることです。次に、post メソッドにコードを記述して、色のリストを確認し、まだ存在しないレコードを追加する必要があります。

これは比較的複雑なことなので、ここで 1 つの回答で簡単にカバーできるものではありません。

もう 1 つのオプションは、単純に [新規追加] ボタンのアクションを用意することです。これにより、空白のレコードがデータ コレクションに挿入され、ポストバック時に 3 つのレコードが取得されます (そのうちの 1 つは null 値を持つ)。値を入力すると、メインのポスト メソッドにポストバックされ、空白のレコードが更新されます。

このソリューションには、ユーザーが新しいレコードを追加して保存しない場合、空白のレコードがデータベースに残るという欠点があります。

于 2012-02-05T21:14:12.460 に答える