2012-09-04 4 views
2
나는 다음과 같이 볼에서 데이터를 전달 내 컨트롤러를

:뷰 사이에 데이터를 전달하는 방법을

IEnumerable<MovieDetails> jsonData = default(IEnumerable<MovieDetails>); 

#region Constructor Request to get all Data 
public MoviesController() 
{ 
    jsonData = GetJsonValues(URL); 
} 
public ActionResult Index() 
{ 
    return View(jsonData); 
} 

이제 내보기로 컨트롤을 렌더링된다

이미지의 클릭에 지금
@model IEnumerable<VikiMVC.Models.MovieDetails> 

@foreach (var movieDetails in Model) 
{ 
    <!--Deleted Divs for Simplicity --> 
    <img src = @movieDetails.Thumbnail alt = @movieDetails.Thumbnail 
      class="imgStyle"onclick="playMovie(this)" [email protected]/>  
} 

다른보기를 열고 해당 특정 항목과 관련된 @movieDetails에 액세스하려고합니다.

내 영화 정보 클래스는 같이 간다 : 나는 이미지를 클릭하면

public class MovieDetails 
{ 
    public string Title { get; set; } 
    public string Thumbnail { get; set; } 
    // public string URI { get; set; } 
    public string Description { get; set; } 
    public string MovieURI { get; set; } 
    // public List<Response> Response { get; set; } 
} 

그래서 나는 특정 이미지에 MovieURI 특정 할 수 액세스 할 수 있어야합니다. 우리는 querystring을 사용하여 그것을 할 수 있지만, Razor는 더 나은 것을 가지고 있어야합니다.

답변

2

왜 alt 이미지를 두 번 사용 했습니까? JS에서

@foreach (var movieDetails in Model) 
{ 
    <!--Deleted Divs for Simplicity --> 
    <img src = @movieDetails.Thumbnail class="imgStyle" onclick="playMovie('@movieDetails.MovieURI')" [email protected]/>  
} 

:이 시도

function playMovie(uri){ 
    window.location.href = uri; 
} 

그러나 나는 이런 식으로 뭔가를 제안 (모델 ID 필드 추가) :

@foreach (var movieDetails in Model) 
{ 
    <!--Deleted Divs for Simplicity --> 
    <a href="/Mycontroller/Movie/@movieDetails.Id"> 
     <img src = @movieDetails.Thumbnail class="imgStyle" [email protected]/> 
    </a> 
} 

작업 :

public ActionResult Movie(int id) 
{ 
    var movieModel = context.Movies.GetById(id); 
    return View(movieModel); 
} 
0

TempData을 사용하면 다른보기간에 데이터를 전달할 수 있습니다. 둘러보기 this link

1

을 경유하여 통과하는 것이 잘못되었습니다.?

나는 MovieURI 또는 MovieDetails ID를 QueryString을 통해 전달한 다음 표시 할보기로 전달합니다.

Razr은 View 엔진입니다. 뷰간에 데이터를 전달하는 방식은 변경되지 않습니다. 나는 절대적으로 다른 방법으로 그것을 할 수 없다면 다른 사람들이 제안한 것처럼 TempData을 사용하는 것을 피할 것이다.

관련 문제