2012-09-18 3 views
0

categoryId를 다시 보내고 강력하게 형식이 지정된 새 개체로 페이지를 업데이트하려고합니다.asp.net MVC null 문자열 매개 변수

public ActionResult SortListing(string categoryGuid) 
    { 
     var listingCategory = new ListingCategory(); 
     listingCategory.Id = _tourismAdminService.GetByGuid<ListingCategory>(Guid.Parse(categoryGuid)).Id; 
     var listings = new List<Listing>(); 

     foreach (var listing in _tourismAdminService.ListAllEntities<Listing>()) 
     { 
      if (listing.CategoryId == listingCategory.Id) 
      { 
       listings.Add(listing); 
      } 
     } 

     return RedirectToAction("Index", "Listing", listings); 
    } 
+0

하는'Controller'에서 작업 방법을 게시하시기 바랍니다. – Gromer

+0

안녕하세요. 컨트롤러 코드를 추가했습니다. – Subby

답변

2

아,이 도움이 : 어떤 이유로 들어, cateogryId는

$(function() { 
    $('#hhh').change(function() { 
     var url = $(this).data('url'); 
     var categoryId = $(this).val(); 
     $.ajax({ 
      url: url, 
      type: 'GET', 
      cache: false, 
      data: { categoryId: categoryId }, 
      success: function (result) { 
       // TODO: manipulate the result returned from the controller action 
      } 
     }); 
    }); 
}); 

<h2>Index</h2> 
@Html.ActionLink("Create New Listing", "Create") 
<br/> 
<strong>Filter Listings</strong> 
@Html.DropDownListFor(
    m => m.SelectedCategoryGuid, 
    Model.Categories, 
    "Select a Category", 
    new { 
     id = "hhh", 
     data_url = Url.Action("SortListing", "Listing") 
    } 
) 

컨트롤러 코드

가 ... null가오고있다. 자바 스크립트를 다음으로 변경하십시오.

알림 귀하의 자바 스크립트에서 data: {...} 행을 변경했습니다. data 행의 매개 변수 이름을 Action 메소드의 매개 변수와 일치시켜 바인딩을 작동 시키려고합니다.

+1

안녕하세요. 효과가있었습니다. 마지막으로 하나의 문제가 생겼지 만 새로운 질문을 할 것입니다. – Subby

1

조치 방법에서 categoryGuid이라는 매개 변수가 필요하지만 아약스 코드와 다른 이름의 매개 변수를 전달하고 있습니다. 당신의 자바 스크립트 코드, 변경에

data: { categoryId: categoryId }, 

data: { categoryGuid: categoryId }, 
+0

감사합니다! 고멜의 대답처럼 완벽하게 작동했습니다. 새로운 문제가 생겼지 만 새로운 질문으로 게시 할 것입니다. – Subby