0
ブール値がfalseに設定されたジョブのリストを返すリストがあります。私のビューではtrueに変更したいと思います。私の問題は、ビューがIDを返すことがないということです。理由はわかりません。チェックボックスのリストからブール値を変更する
最初はforeachを使っていましたが、いくつかの研究の後でIListを使うべきだとわかりました。ここで
は、バックエンドである:
[HttpGet]
[Authorize(Roles = MyRoles.Admin)]
public ActionResult JobsToModerate()
{
var allJobs = db.Jobs.Where(x => x.isModerated == false).ToList();
return View(allJobs);
}
[HttpPost]
[Authorize(Roles = MyRoles.Admin)]
public ActionResult JobsToModerate([Bind(Include = "ID,isModerated")] Job job, EditJobViewModel editJob)
{
if (!ModelState.IsValid)
{
var jobs = db.Jobs.Find(editJob.ID);
if (jobs == null)
{
return HttpNotFound();
}
else
{
jobs.ID = editJob.ID;
jobs.isModerated = editJob.isModerated;
}
try
{
db.SaveChanges();
}
catch (Exception ex) { throw ex; }
}
return View();
}
マイビュー:
@model IList<JobSite3.Models.Job>
@using (Html.BeginForm("JobsToModerate", "Jobs", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
for (var i = 0; i < Model.Count; i++)
{
@Html.HiddenFor(model => model[i].ID)
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model[i].Name)
</th>
<th>
@Html.DisplayNameFor(model => model[i].isModerated)
</th>
<th></th>
</tr>
<tr>
<td>
@Html.DisplayFor(model => model[i].Name)
</td>
<td>
@Html.EditorFor(model => model[i].isModerated)
</td>
</tr>
</table>
<input type="submit" id="btnNew" value="Save" class="btn btn-default" />
}
}
私はそこに解決策と同様の問題があると考えているが、私はまだそれを発見していません。
私は答えとしてマークします。また、ビュー入力に応じてブール状態を編集するための 'post' 。そうですね、私は怠惰で、別のアクションからペーストしてコピーした後、ソロ要素の代わりにリストを修正してしまい、最後に混乱してしまったので意味がありません。 – Eduard