List<Listing>
オブジェクトを別のアクション メソッドに渡し、そのメソッドがパラメーターを使用してビューを呼び出すようにしています。
何らかの理由で、私が渡しているパラメーターが null です。
以下はうまくいきます:
public ActionResult SortListing(string categoryGuid)
{
var listingCategory = new ListingCategory();
listingCategory = _tourismAdminService.GetByGuid<ListingCategory>(Guid.Parse(categoryGuid));
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);
}
以下は、null として表示されるパラメーターを示しています。
public ActionResult Index(List<Listing> listing)
{
var model = new ListListingsViewModel();
IEnumerable<ListingCategory> categories = _service.ListAllEntities<ListingCategory>();
if (categories != null)
{
model.Categories =
categories.Select(
cat =>
new SelectListItem
{
Text =
cat.GetTranslation(stringA,
stringB).Name,
Value = cat.Guid.ToString()
}).ToList();
}
model.Listings = listing ?? _service.ListAllEntities<Listing>();
return View(model);
}
編集
エラーメッセージ:
キー 'SelectedCategoryGuid' を持つ ViewData アイテムのタイプは 'System.Guid' ですが、タイプは 'IEnumerable' である必要があります。
の上:
@Html.DropDownListFor(
m => m.SelectedCategoryGuid,
Model.Categories,
"Select a Category",
new {
id = "hhh",
data_url = Url.Action("SortListing", "Listing")
}
)