我正在尝试将我的模型提交给控制器,但是FormCollection中的结果并不是我期望的。
我从自定义XML服务中收到一个TeamModel的IEnumerable。每个TeamModel都包含一个字符串和一个布尔值。字符串是团队的名称,布尔值表示用户是否想将其插入到数据库中。
控制器:
我从自定义XML服务中收到一个TeamModel的IEnumerable。每个TeamModel都包含一个字符串和一个布尔值。字符串是团队的名称,布尔值表示用户是否想将其插入到数据库中。
控制器:
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");
}
TeamModel:
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?
- 我传递联赛回控制器的方式是否正确?(通过隐藏字段传递)