요즘 일상적인 상황에서 사용자가 ASP.NET MVC 응용 프로그램에서 Enum 값을 선택하도록 허용해야합니다. MVC 버전 5.2를 사용하고 있기 때문에이 작업을 수행 할 수 있습니다.EnumDropDownList 값을보기에 전달하지 않고 값을 선택하지 않습니다.
// Model
public MyEnum EnumVal { get; set; }
// Controller
return View(new MyModel{EnumVal = MyEnum.SomeVal});
// View
@Html.EnumDropDownListFor(model => model.EnumVal)
그리고 모두 마술처럼 작동합니다. 나는 그것을 당연한 것으로 여기기에 충분한 시간을 보냈습니다.
그러나 나는 방금 전달한 값이 드롭 다운의 현재 값으로 선택되지 않고 있음을 발견했습니다.
모델의 내용을 출력하여 값이 올바르게 전달되는지 확인할 수 있지만 드롭 다운의 경우 첫 번째 값만 선택됩니다.
기타 답변 (예 : here 및 here)은 제가 알고 있다고 생각한 것을 확인하는 것 같습니다. 제가 통과 한 값을 선택하기 위해 드롭 다운을 얻으려고 다른 것을 할 필요가 없어야합니다.
나는 두뇌 방귀가 있습니까? 왜 이것이 효과가 없습니까?
업데이트
다음 컨트롤러 방법보다 전체 목록입니다 :
public ActionResult Create(string enumVal)
{
var valueToPass = AccountsDestination.QbDUk;
Enum.TryParse(enumVal, out valueToPass);
return View(new QuickBooksMappingViewModel(){EnumVal = valueToPass});
}
표시된 코드가 정상적으로 작동합니다. 문제를 일으킬 수있는 자바 스크립트가 있습니까? 그리고 컨트롤러 메소드가 GET이고 POST에서 값을 변경하려고하지 않거나 GET 메소드에서'enum '에 대한 매개 변수가 없다고 가정합니다. –
@StephenMuecke 당신이 그것을 찍었 어! get params 중 하나의 이름과 충돌했습니다. 매개 변수의 이름을 변경하는 것은 모두 완료되었습니다. (답장으로 답을 자유롭게 바꾸면 받아 들일 것입니다.) –
관련 코드 - 메서드의 서명을 표시하지 않았습니다. –