2011-05-09 7 views
3
나는 특히 4

매개 변수에 람다식이있는 메서드를 호출 할 때 명명 된 인수를 사용할 수 있습니까?

, 나는 그렇게 같은 ASP.NET MVC에서 HtmlHelpers를 호출 할 때 명명 된 인수를 사용하려고 해요 C#에서 명명 된 인수 및 선택적 매개 변수와 함께 장난 해요

...

@Html.DropDownList(name: "ItemGroup", 
        selectList: Model.ItemGroupList, 
        htmlAttributes: new { style="width:300px;" }) 

하지만 람다 식을 문자열 값 대신 첫 번째 매개 변수로 사용하는 강력한 형식의 도우미를 사용하려면 어떻게해야합니까?

@Html.DropDownListFor(expression: m => m.ItemGroup, 
         selectList: Model.ItemGroupList, 
         htmlAttributes: new { style = "width:300px;" }) 

위의 코드는 "유형 인수 ... 사용에서 유추 할 수 없습니다."라는 오류를 나타냅니다.

공교롭게도이

@Html.DropDownListFor(m => m.ItemGroup, 
         selectList: Model.ItemGroupList, 
         htmlAttributes: new { style = "width:300px;" }) 

이 아마 정말 분명 뭔가하지만 난 그것을 검색 할 때 잘 설명 아무것도를 찾는 데 어려움이있어 ... 잘 작동합니다. 나는 아마도 적절한 용어 나 다른 것을 찾지 않을 것입니다. 어쨌든, 나는 올바른 방향으로 조금 움직일 수 있었다.

답변

0

"형식 인수는 ... 사용법에서 추론 할 수 없습니다"오류에 대해 selectList 인수로 전송 된 개체가 SelectList 대신 목록 인 경우에만 해당 인수를 얻을 수있었습니다. 이것은 나를 위해 올바르게 렌더링 :

Html.DropDownListFor(x => x.ReferralAgencyId, 
       selectList: new SelectList(Model.ReferralAgencies, "ReferralAgencyId", "Description", Model.ReferralAgencyId)) 

이 시계에 페이지를 발생시키고 렌더링 결코 :

Html.DropDownListFor(expression: x => x.ReferralAgencyId, 
       selectList: new SelectList(Model.ReferralAgencies, "ReferralAgencyId", "Description", Model.ReferralAgencyId)) 

하는 이유 지정에 대해서는 "표현"람다 표현식이 페이지가 중단 될 것입니다 위해, 나는 잘 모르겠다. Url.Action (actionName : "MyPage", controllerName : "MyController")이 잘 렌더링되기 때문에 이것은 선택적 매개 변수가 아니기 때문에 분명히 아닙니다. 그냥 람다 표현식이 이런 행동을 일으키는 것 같습니다.

+0

보기가 명명 된 인수로 나열된 표현식으로 렌더링하려고 할 때 나타나는 특정 오류는 ... '컴파일러 오류 메시지 : CS0411 : 메서드 'System.Web.Mvc.Html의 형식 인수. SelectExtensions.DropDownListFor (System.Web.Mvc.HtmlHelper , System.Linq.Expressions.Expression >, System.Collections.Generic.IEnumerable SelectListItem>, object) '을 사용에서 유추 할 수 없습니다. 형식 인수를 명시 적으로 지정해보십시오. ' 주셔서 감사합니다. Lambdas와 만났습니다. –

관련 문제