2013-08-29 5 views
0

만들기 값을 반환하지 않습니다 외부 키에 대해 다음 드롭 다운 목록 :DropDownList로 다음과 같이 내가 세 개의 테이블이 기능을

<div class="editor-label"> 
    @Html.LabelFor(model => model.A_ID, "A") 
</div> 
<div class="editor-field"> 
    @Html.DropDownList("A_ID", String.Empty) 
    @Html.ValidationMessageFor(model => model.A_ID) 
</div> 

<div class="editor-label"> 
    @Html.LabelFor(model => model.C_B_ID, "B") 
</div> 
<div class="editor-field"> 
    @Html.DropDownList("C_B_ID", String.Empty) 
    @Html.ValidationMessageFor(model => model.C_B_ID) 
</div> 

이 내 생성 기능은 다음과 같습니다

이제 create 함수에서 A_ID의 첫 번째 드롭 다운에서 선택한 값을 받지만 C_B_ID의 드롭 다운 값은 항상 0으로 표시됩니다. C_instance.A_ID는 항상 드롭 다운리스트하지만 C_instance.C_B_ID = 0에서 선택 올바른 A_ID을 가지고 있기 때문에 이런 일이 지금

The INSERT statement conflicted with the FOREIGN KEY constraint 
"FK_dbo.Cs_dbo.Bs_C_B_ID". 
The conflict occurred in database "C:\temp.MDF", table "dbo.Bs", column 'B_ID'. 
The statement has been terminated. 

이이 문제가 발생합니다! (그리고 드롭 다운리스트는 테이블 Bs의 모든 항목을 보여 주며 그 중 하나를 선택합니다.)

무엇이 원인 일 수 있습니까?

답변

0

DropDownList 도우미로 목록을 전달해야합니다.

@Html.DropDownList("A_ID", ViewBag.A_ID, String.Empty) 
@Html.DropDownList("C_B_ID", ViewBag.B_ID, String.Empty) 
+0

죄송합니다. 내 게시물에 약간의 실수를했습니다. 업데이트 된 게시물을 참조하십시오. 나는 또한 get 메소드를 추가했습니다. – Strangeloop

+0

@Strangeloop'DropDownList' 도우미에리스트를 전달하는 것처럼 보이지 않기 때문에 뷰를 업데이트 했습니까? – asymptoticFault

+0

감사 AsymptoticFault, 나는 GET : Create 함수를 보았고 잘못되었다는 것을 깨달았다! 내가해야 할 일을했을 모든 { ... ** 교정 ** ViewBag.C_B_ID = 새로운 selectList의) (작성 공공 ActionResult를 변경할 수있다 (db.Bs를, "B_ID", "이름"); 돌아 가기 View(); } 공공 ActionResult 만들기 (C의 c_instance) { ... ... **** 교정 *** ViewBag.C_B_ID = 새로운 selectList의 (db.Bs, "B_ID", "이름", c_instance .C_B_ID); 돌아 가기보기 (c_instance); } } – Strangeloop

관련 문제