문제

내가 달렸으로 홀수 문제 ActionLink 메서드에서 ASP.NET MVC 베타 버전입니다.을 사용할 때는 람다 과부하에서 MVC 선물할 수 없는 것을 매개 변수를 지정 뽑아에서의 viewdata.

면 다음과 같이 합니다:

<%= Html.ActionLink<PhotoController>(p => p.Upload(((string)ViewData["groupName"])), "upload new photo") %>

HTML 링크가 포함 빈 URL.

    <a href="">upload new photo</a>

는 경우 그러나 나는 하드 드 코드를 매개변수,다음과 같다:

<%= Html.ActionLink<PhotoController>(p => p.Upload("groupA"), "upload new photo") %>

출력 포함하는 실제 URL 을 입력합니다.

    <a href="/group/groupA/Photo/Upload">upload new photo</a>

나는 가정이 할 수있는 뭔가가 가진 가시성하고의 가용성의 viewdata,그리고 그것은이 때는 람다를 얻을 평가하여 내부 프레임워크의.하지만 그것은 단지 추측한다.

내가 뭔가 잘못된 첫 번째에서 샘플을이 발생 또는 이 약간 짧은 버그?

업데이트:나의 최신 버전을 사용하여 MVC 선물.그것은 지적되었다는 것이 어떤 사람들을 위해 작동합니다.이후 그것은 작동하지 않는 나를 위해 이 나를 생각하게는 그것이 뭔가 특정니다.누군가가 어떤 제안을 위해 무엇을 찾는 다음에,이기 때문에 하나가 나에 부딪쳤습니다.

도움이 되었습니까?

해결책 2

좋아,내가 무엇인지 알아 냈어 나의 문제이었다.

분명하지 않았더라도 설정의 viewdata 슬롯었다는 것을 읽으려고서에서 보기 결과로,그것에는 null 값입니다.

그래서 효과적으로 내가 쓰기:

<%= Html.ActionLink<PhotoController>(p => p.Upload(null), "upload new photo") %>

내가 생각하는 궁극적인 커을 이 모든 것들이었다는 사실을 매개 변수(groupname)을 나타내는 비 defaultable 값에서 나의 라우팅 테이블이 있습니다.

routes.MapRoute(
    "Group",  
    "group/{groupname}/{controller}/{action}/{id}",
    new {controller = "Photos", action = "View", Id = ""});

그래서에 따르면 규칙 라우팅 호텔 그룹이 존재하지만,에 따라 가 Lambda gropname 생략(null).이 결과는 어플리케이션 개발되는 것을 찾을 수 없는 경로를 만족 내 쿼리,그리고 그냥 돌아 null 입니다.

다른 팁

강력하게 입력 된 ActionLink가있는 Microsoft.web.mvc.dll 버전을 업데이트 했습니까?

분명히이 DLL은 베타 릴리스를 위해 업데이트되었습니다. 함수가 약간 수정되었을 수 있습니다.

방금 이것을 시도했습니다

<%= Html.ActionLink<HomeController>(x=>x.Search((string)ViewData["search"]), "search?") %>

그리고 그것은 잘 작동했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top