我正在尝试将我的模型发布回控制器,但 FormCollection 中的结果不是我所期望的。
我从自定义 XML 服务收到 TeamModel 的 IEnumerable。每个 TeamModel 都包含一个字符串和一个布尔值。字符串是团队的名称,bool 表示用户是否要将其插入数据库。
控制器:
public ActionResult ImportTeams()
{
var xmlService = new XmlSoccerService();
const string league = "Scottish Premier League";
var model = xmlService.GetAllTeamsByLeagueAndSeason(league, "1112");
ViewBag.League = league;
return View("~/Views/Admin/Database/ImportTeams.cshtml", model);
}
[HttpPost]
public ActionResult ImportTeams(FormCollection collection , string league)
{
return RedirectToAction("ImportTeams");
}
团队模型:
public class TeamModel
{
public string Name { get; set; }
public bool Import { get; set; }
}
看法:
@model IEnumerable<TopTipFootball.XmlSoccer.Models.TeamModel>
@{
ViewBag.Title = "Import Teams";
}
<h2>Select the teams to import into: @ViewBag.League</h2>
@using (Html.BeginForm())
{
var league = ViewBag.League;
@Html.HiddenFor(l => league)
foreach (var team in Model)
{
<div class="editor-field">
@Html.EditorFor(model => team.Import)
@Html.DisplayFor(m => team.Name)
</div>
}
<p>
<input type="submit" value="Import teams" />
</p>
}
视图呈现的 html 中的一个元素:
<input checked="checked" class="check-box" data-val="true" data-val-required="The Import field is required." id="team_Import" name="team.Import" type="checkbox" value="true" />
<input name="team.Import" type="hidden" value="false" />
Aberdeen
一些问题:
- 如何确保我在帖子中将 TeamModel 的 IEnumerable 返回到控制器?
- 我是否要以正确的方式将联盟传回给控制器?(通过隐藏字段)