2012-02-05 4 views
5

내가 엔티티 프레임 워크 4.2과 MVC를 사용하는 4 나는이 모델/데이터베이스 구조Asp.net MVC 4

UserInformation
사용자 ID (PK)을 얻었다


FIRSTNAME

이메일

0 12, UserFavoriteColor
FavID
사용자 ID (FK)가

하나에 UserInformation 테이블을 채우기 위해 컨트롤러 액션을 만든 다음 UserFavoriteColor 채우기 것이 가능 왜 (PK)
컬러
.

2 단계로 나누어서이 작업을 수행 할 수 있음을 알고 있습니다. 그러나 이것은 내가 원하는 것이 아닙니다.


enter image description here

+0

제목과 마찬가지로 MVC4가 맞습니까? 너의 태그처럼 mvc-3? –

+0

업데이트되었습니다. MVC 4 태그가 있다는 것을 모릅니다. –

+0

아약스를 통해 이것을하려고합니까? 또는 표준 포스트 백? –

답변

7

일반적으로 새 행을 삽입 할 jQuery를 사용합니다. 우리는 당신의 코드가 어떻게 생겼는지 모르는 때문에이 작업을 수행해야 정확하게하는 방법을 보여 어렵다,하지만 당신은 여기 예제를 볼 수 있습니다 :

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

트릭은 당신이 이름을 가지고있다 모델 바인더가 저장을 클릭 할 때 모델 바인더가 컬렉션에 추가하도록 적절하게 설정하십시오. 그런 다음 게시물 메서드에 코드를 작성하여 색상 목록을 살펴보고 이미 존재하지 않는 레코드를 추가해야합니다.

이것은 비교적 복잡한 것이므로 여기서 한 가지 대답으로 쉽게 다룰 수있는 내용이 아닙니다.

또 다른 옵션은 단순히 새 레코드 추가 작업을 수행하는 것입니다. 그러면 빈 레코드가 데이터 컬렉션에 삽입됩니다.이 레코드는 포스트 백에서 3 개의 레코드 (하나는 null 값)를 갖게됩니다. 값을 채우면 주 게시물 방법으로 다시 게시되고 빈 레코드가 누설됩니다.

이 솔루션은 사용자가 새 레코드를 추가하고 저장하지 않으면 빈 레코드가 데이터베이스에 남아 있다는 단점이 있습니다.

+0

나는 그것을 시험해 본다. 단 하나. 이 예제에서는 poco 클래스를 사용합니다. 먼저 데이터베이스와 함께 프린시 페를 사용하는 방법이 있습니까?데이터베이스 + T4 dbcontext에서 모델 업데이트를 수행하면 저에게 2 개의 classes.UserInformation.cs 및 UserFavoriteColor.cs가 생성됩니다. UserInformation.cs에는 ICollection UserFavoriteColors {get; set;}가 있습니다. 보시다시피, 그것은 ICollection이지, 당신이 나에게주는 링크와 같은 목록은 아닙니다. –

+0

@ Jean-Francois - ICollection은 List와 비슷하지만이를 적용 할 수 있어야합니다. 목록과 마찬가지로 항목을 추가 및 제거 할 수 있습니다. –

+0

예제에서 그는 (int i = 0; i model.FavouriteMovies [i] .Title)}} FavouriteMovies 목록에서 이동하십시오. 내 경우, 나는 똑같은 일을 시도하고 나는 그를 좋아할 수 없다. 내가 ICollection 를 반복 할 수있는 유일한 방법은 (int i = 0; i Model.MyUserInfo.UserFavoriteColors.elementAt (i) .Color)}. html 결과로 elementAt와 적절한 ID 구성이 제공되지 않습니다. –