값이 데이터베이스에서 채워 져야하는 2 개의 드롭 다운 목록이 있습니다. 저장된 proc과 그 결과가 정확한지 확인했습니다. 나는 심지어 컨트롤러까지 개까지 디버깅했고 올바른 값을 얻고있는 것처럼 보입니다.데이터베이스에서 DropDownListFor 값 채우기
@ Html.DropDownlistFor 구문을 이해하는 데 도움이 필요합니다. 내가 뭘 사용하고 잘못되었습니다. 어떤 도움이 필요합니까?
모델 :
public class DropDownConfiguration
{
public string Project { get; set; }
public string LineID { get; set; }
}
컨트롤러 :
[ActionName("DetailsForm")]
[HttpGet]
public ActionResult DetailsForm()
{
try
{
IEnumerable<DropDownConfiguration> dropConfig = new List<DropDownConfiguration>();
dropConfig = floorService.DropDownList();
DetailsViewModel model = new DetailsViewModel()
{
dropConfig = dropConfig,
};
return View("DetailsForm",model);
}
catch (Exception ex)
{
return View("_error");
}
}
저장소 :
public IEnumerable<DropDownConfiguration> DropDownList()
{
var model = new List<DropDownConfiguration>();
using (var dbCmd = defaultDB.GetStoredProcCommand("dbo.GetLineIDProject"))
{
var varCmd = defaultDB.ExecuteReader(dbCmd);
while (varCmd.Read())
{
model.Add(new DropDownConfiguration()
{
LineID = varCmd.IsDBNull(0) ? "" : varCmd.GetString(0),
Project = varCmd.IsDBNull(1) ? "" : varCmd.GetString(1),
Quarter = varCmd.IsDBNull(2) ? 0 : varCmd.GetInt32(2),
Year = varCmd.IsDBNull(3) ? 0 : varCmd.GetInt32(3)
});
}
}
return model;
}
(여기되는 2 드롭 다운 목록 LineID 프로젝트) ----- html로 도움이 필요 여기 ------
@Html.DropDownListFor(m => m.dropConfig.FirstOrDefault().LineID, "--Select LineID--", new { @class = "form-control" })
@Html.DropDownListFor(m => m.dropConfig.FirstOrDefault().Project, "--Select Project--", new { @class = "form-control" })
디버깅 @Controller에 16,
보기가 이해가되지 않습니다. 드롭 다운 목록에는 바인딩 할 속성과 옵션을 표시하는 속성 2 개가 필요합니다. 모델에 바인딩 할 속성이 없습니다. [this Q/A] (https://stackoverflow.com/questions/34366305/the-viewdata-item-that-has-the-key-xxx-is-of-type-system-int32-but)를 제안하십시오. -must-be-o) 드롭 다운리스트 생성하기 –
'DropDownListFor' 설정이 잘못되었다고 생각합니다. 'FirstOrDefault()'를 사용하여 선택된 값으로 바인드하는 이유는 무엇입니까? 또한'IEnumerable '을 사용하여 두 번째 인수에서 데이터 컬렉션 목록으로 DDL을 채우지 않습니다. 정확히 무엇을하고 싶습니까? –
오 그래. 이것에 대한 Lemme 점검. – beginner