我将List<Listing>
对象传递给另一个操作方法,并使该方法使用该参数调用View。ASP.NET MVC null参数
出于某种原因,我传递的参数为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);
}
下面显示了就要到了为空的参数。
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);
}
EDIT
错误消息:
具有密钥的ViewData项 'SelectedCategoryGuid' 的类型为 '的System.Guid',但必须是类型为 'IEnumerable的'。
开:
@Html.DropDownListFor(
m => m.SelectedCategoryGuid,
Model.Categories,
"Select a Category",
new {
id = "hhh",
data_url = Url.Action("SortListing", "Listing")
}
)
您好。我喜欢你的查询字符串的第一个例子。你能否通知我如何做到这一点?你能否告诉我是否可以从第一种方法调用View,因为我不需要第二种方法叫 – Subby
@Subby:是的。看到我更新的答案。 – Shyju
嘿Shyju。请检查我的更新是否有新错误 – Subby