我将一个List<Listing>
对象传递给另一个操作方法,并使该方法使用参数调用 View。
出于某种原因,我传递的参数为空。
以下工作正常:
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);
}
下面显示了一个为空的参数。
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")
}
)