2013-04-19 2 views
0

나는이 내 _Layout에서MVC에서 ViewBag를 _Layout으로 전달 하시겠습니까? 내 검색 컨트롤러에서

 public JsonResult Search(string term) 
     { 
     var termLower=term.ToLower(); 
     var pictures=_PictureRepo.GetAll(); 

     var productsWereSeached = _ProductRepo.GetAll().Where(x => x.Name.ToLower().Contains(term)).Select(x=> new ProductData 

     { 
      Name=x.Name, 
      Price=x.Price, 
      Id=x.Id, 
      Warranty=x.Warranty, 
      Picture=x.Pictures.FirstOrDefault() 

     }); 
     ViewBag.NOfMatchedProduct = productsWereSeached.Count(); 
     productsWereSeached = productsWereSeached.Take(2); 
     foreach (var product in productsWereSeached) 
     { 
      product.Picture = _PictureRepo.GetAll().Where(x => x.ProductId == product.Id).FirstOrDefault(); 
     } 


     return Json(productsWereSeached); 
    } 

나는이 :

<div> 
    <input id="nOfMatchedProducts" value='@ViewBag.NOfMatchedProduct'/> 
    <ul id="realPlaceForSearchItems"> 
</ul> 
</div> 

은 어쩌면 내가 _Layout에서 PartialView에이 코드를 삽입해야합니다. 질문 : 컨트롤러에서 ViewBag 데이터를 PartialView으로 전달하는 방법

+0

"public JsonResult Search"- 이미 아약스에서 메소드를 호출하고 있습니다. 그렇습니까? ViewBag를 사용할 필요가 없습니다. –

+0

예,하지만 2 제품을 반환하고 있습니다 .WereSeached (Take (2) 부분을 통지합니다)하지만 어떻게 든 보내야합니다. ViewBag.NOfMatchedProduct –

답변

0

"public JsonResult Search"- 이미 아약스에서 메소드를 호출하고 있습니다. 맞습니까?

네,하지만 내가 반환하고 2

을 productsWereSeached

이미 결과를 가지고 당신의 표적 요소를 표시해야합니다 :

$.get('@Url.Action("Search")',function(result){ 
    $("#nOfMatchedProducts").html(result.length); 
}); 

당신이 같은 추가 정보를 반환하려면 '필터링 된 결과'이외에 검색된 총 레코드 수는 다음과 같이 전달할 수 있습니다.

var totalrows = productsWereSeached.Count(); 
//filter your search (productsWereSeached) 
return Json(new {list=productsWereSeached, totalrows }); 

다음이 아약스 전화를하십시오 :

$.get('@Url.Action("Search")',function(result){ 
    $("#nOfMatchedProducts").html(result.totalrows); 
}); 
+0

아니요, 1000 productsWereSeached가 될 수 있습니다. 항상 두 개를 반환하지만 내보기에는 1000이라는 숫자가 필요합니다. –

+0

jquery에서 길이를 결정할 수있는 IEnumerable을 반환하는 한 반환하는 횟수는 중요하지 않습니다. –

+0

나는 너를 이해했는지 모르겠다. 나는 결과를 얻는다. 예상대로 길이 2! –

관련 문제