データベース内にリストのリストがあります。私のビューには、カテゴリを含む DropDownList があります。カテゴリには多くのリストが含まれています。
特定のカテゴリを選択すると、そのカテゴリが選択されているリストのみを表示したいと考えています。
私の主な心配は、ListingController で SortListing メソッドを呼び出す JQuery を生成する方法です。
現在の HTML (Razor) は次のとおりです。
@Html.DropDownListFor(m => m.Categories, Model.Categories, "Select a Category")
私のSortListingメソッド:
public List<Listing> SortListing(string categoryId)
{
var listings = new List<Listing>();
foreach (var listing in _service.ListAllEntities<Listing>())
{
if (listing.CategoryId == categoryId)
{
listings.Add(listing);
}
}
return listings;
}
編集私は以下を持っています。categoryGuid を入力すると、null が来ます。
これは私のコードです:
$(function () {
$('#SelectedCategoryGuid').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
}
});
});
});
</script>
<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 = "SelectedCategoryGuid",
data_url = Url.Action("SortListing", "Listing")
}
)