2011-04-22 6 views
1

나는이 예제에서 모델 바인더의 행동을 설명 할 수 없습니다ASP MVC 모델 바인더

enum Gender 
{ 
    Male, 
    Female 
} 

@model Gender 
@Html.ActionLink("Test", "Index", new { gender = Model }); 

public ActionResult(string gender) 
{ 
    ViewBag.Gender = gender; 
    return View() 
} 

를 작동하는 이유 - 문자열 성별 인수 작업을 올바른 GET 열거 형에?

답변

2

object.ToString()을 통해 모든 것이 절대적으로 string으로 변환 될 수 있기 때문에 효과가 있습니다. 또한 Enum에서 변환을 수행하면 유용한 정보가 생성됩니다. 열거 치의 이름의 텍스트

대부분의 경우, 기본 바인더는 숫자 에이 값들 사이에서 앞뒤로 변환 할 수 있습니다.

+0

감사합니다. 하지만 그것은 "숫자적인 것, 대부분의 경우"라고 말할 때 - 그것이 기본 바인더로 변환 될 수 없다는 것은 무엇을 의미합니까? – Boo

+0

"대부분의 경우"는 잘못된 표현이었습니다. 나는 진실이 아닙니다! 문자열은 사용하려는 것입니다. 이상하게 보입니다. 일반적으로 Enum.Parse()는 직관적이지 않지만 간단한 캐스팅으로 양방향으로'int'와'enum '사이를 변환하는 것이 더 쉽습니다. –

관련 문제