2012-09-18 93 views
0

我想發回一個categoryId並用新的強類型對象更新頁面。出於某種原因,cateogryId在爲空來了...asp.net MVC空字符串參數

$(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") 
    } 
) 

控制器代碼:

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

啊,沒有什麼幫助。你的JavaScript改成這樣:

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

通知我改變了data: {...}線在JavaScript。您希望將data行中的參數名稱與Action方法中的參數進行匹配,以使綁定生效。

+1

嗨。那工作。雖然有最後一個問題,但我會提出一個新的問題,我猜。 – Subby

1

您的操作方法需要一個名爲categoryGuid的參數,但是您傳遞的參數與您的ajax代碼的名稱不同。在你的JavaScript代碼, 更改

data: { categoryId: categoryId }, 

data: { categoryGuid: categoryId }, 
+0

謝謝!像Gomer的回答一樣完美。雖然有一個新問題,但我會把它作爲一個新問題發佈 – Subby