我正在制作一个新的首页,它将显示过滤器和新闻帖子列表。每个新闻帖子和每个新闻列表都可以标记为多个业务领域。
新闻列表将根据以下内容包含新闻:
加载视图 IndexSecond 后,过滤器会根据其新闻列表获取其可选择的业务区域。我的问题是,我不知道如何从EditorFor
获取选定的业务范围,最终传递到 model.filteredBAs
的IndexSecondFiltered
?
当我在IndexSecondFiltered中遇到断点时,model
总是为空。
在视图IndexSecond
中@model Slussen.BLL.Models.PostFilterListModel
...
@using (Html.BeginForm("IndexSecondFiltered", "Home", new { model = model }))
{
@Html.HiddenFor(model => model.filteredBAs)
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
<div class="col-sm-2">Business area</div>
<div class="col-md-10">
@Html.EditorFor(model => Model.newslistModel.BusinessAreas,
new { htmlAttributes = new { @class = "form-control" } })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Go" class="btn btn-primary orange" />
</div>
</div>
}
在HomeController中
public ActionResult IndexSecond()
{
//Known user?
int? uo = null;
if (User.Identity.IsAuthenticated)
uo = CurrentUser.UserOrganization.Id;
return View(
_queryDispatcher.Execute<PostFilterListModel>(
new GetFilteredNewsListById(1, uo, "", 1,
new System.Collections.Generic.List<int>(),
new System.Collections.Generic.List<int>())));
}
[HttpPost]
public ActionResult IndexSecondFiltered(PostFilterListModel model)
{
//Known user?
int? uo = null;
if (User.Identity.IsAuthenticated)
uo = CurrentUser.UserOrganization.Id;
return View(
_queryDispatcher.Execute<PostFilterListModel>(
new GetFilteredNewsListById(1, uo, "", 1,
new System.Collections.Generic.List<int>(), model.filteredBAs)));
}
答案 0 :(得分:0)
我得到了一位同事的帮助。
我根本不需要[HttpPost] ActionResult IndexSecondFiltered。
当我更换
时@using (Html.BeginForm("IndexSecondFiltered", "Home"), new { model = model })
用这个
@using (Html.BeginForm("IndexSecond", "Home"))
模型与IsSelected-status
一起传递给控制器