2012-11-14 2 views
1

제출할 때 상태 ID는 항상 비어 있습니다.@ Html.DropDownList 선택된 값 문제

실마리는 무엇입니까?

고맙습니다.

HTML :

<div style="display: inline-block;">@Html.LabelFor(x => x.Common.StateID , new { @class = "SmallInput2" })</div> 
<div style="display: inline-block;">@Html.DropDownList("StateID", Model.Common.StateList, "-- Select --", new { style = "width: 130px;" })</div> 

코드 :

public ActionResult SignUp() 
     { 
      var model = new SignUpModel 
      { 
       Common = new Common(), 
       Individual = new Individual(), 
       Business = new Business() 
      }; 

      var stateList = new SelectList(_context.States.OrderBy(w => w.StateName), "ID", "StateName", _context.States.OrderBy(w => w.StateName).FirstOrDefault().ID); 
      model.Common.StateList = stateList; 
      model.Common.StateID = _context.States.OrderBy(w => w.StateName).FirstOrDefault().ID; 

      return View(model); 
     } 

모델 :

[Display(Name = "State")] 
public Guid StateID { get; set; } 

[Display(Name = "States")] 
public SelectList StateList { get; set; } 
+1

그리고 예상대로 모델 집합의 다른 속성을 얻습니까? – horgh

+0

@KonstantinVasilcov 예, 있습니다. 다른 모든 소유권은 정확합니다. –

+1

'StateId'라는 이름으로 연결될 수 있다고 생각합니다 ...'DropDownListFor'를 사용하면 다른 것 같아요. 바인더가 바인드에 실패했습니다 ... 접두사가 있어야합니다 ... 다른 속성의 생성 된 html을 확인하십시오. '..EditorFor' 헬퍼 메소드를 사용했다면, 당신은 그것을 볼 것입니다 ... – horgh

답변

0

내가 여기에 올바른 솔루션 @Html.DropDownList selected value issue

그래서 내 경우는 같아야 발견 :

<div style="display: inline-block;">@Html.DropDownListFor(x => x.Common.StateID, Model.Common.StateList, "-- Select --", new { style = "width: 130px;" })</div>