我为2个活动(新输入和编辑)制作了一个动作方法,并且只有一个 查看处理这些活动。 但我不明白无论发生什么活动,动作方法总是认为它是一个新的输入。 我了解到它因为ID始终为0,但问题是,在进行编辑时,在视图中ID是正确的数据ID,但是当我单击提交按钮时,动作方法只是看到ID的0值。
以下是我使用的操作方法:
[HttpPost]
public ActionResult AddAssignment(SateliteSchedule SatSched)
{
var txt = "";
if (ModelState.IsValid)
{
if (SatSched.ID == 0)
{
db.SateliteSchedules.Add(SatSched);
txt = "{0} has been added!";
}
else
{
db.Entry(SatSched).State = EntityState.Modified;
txt = "{0} has been modified!";
}
db.SaveChanges();
Utility utl = new Utility();
TempData["message"] = string.Format(txt, utl.GetSateliteName(SatSched.SateliteID));
return RedirectToAction("FormAssignment");
}
else
{
ViewBag.Message = "ModelState is not Valid!";
return View("ErrorView");
}
}
以下是观点:
@using (Html.BeginForm("AddAssignment", "admin", FormMethod.Post))
{
@Html.ValidationSummary(true)
<table>
<tr>
<td>@Html.LabelFor(m => m.Tanggal)
</td>
<td>
@Html.EditorFor(m => m.Tanggal)
@Html.ValidationMessageFor(m => m.Tanggal)
</td>
</tr>
<tr>
<td>@Html.LabelFor(m => m.SateliteID)</td>
<td>
@Html.DropDownList("SateliteID", (IEnumerable<SelectListItem>)ViewBag.SatList, "--- Satelite ---")
@Html.ValidationMessageFor(m => m.SateliteID)
</td>
</tr>
<tr>
<td>@Html.LabelFor(m => m.WMOnDuty)</td>
<td>
@Html.DropDownList("WMOnDuty", (IEnumerable<SelectListItem>)ViewBag.WMList, "--- Worship Manager ---")
@Html.ValidationMessageFor(m => m.WMOnDuty)
</td>
</tr>
<tr>
<td>@Html.LabelFor(m => m.SMOnDuty)</td>
<td>@Html.EditorFor(m => m.SMOnDuty)</td>
</tr>
<tr>
<td>@Html.LabelFor(m => m.WLOnDuty)</td>
<td>@Html.EditorFor(m => m.WLOnDuty)</td>
</tr>
<tr>
<td>@Html.LabelFor(m => m.MLOnDuty)</td>
<td>@Html.EditorFor(m => m.MLOnDuty)</td>
</tr>
<tr>
<td>@Html.LabelFor(m => m.SoundMan)</td>
<td>@Html.EditorFor(m => m.SoundMan)</td>
</tr>
<tr>
<td valign=top>@Html.LabelFor(m => m.Note)</td>
<td>@Html.TextAreaFor(model => model.Note, new { @class = "memo-text" })</td>
</tr>
</table>
<div>
<input type="submit" value="Save" />
@Html.ActionLink("Kembali", "FormAssignment")
</div>
}
我应该检查什么来解决这个问题?
答案 0 :(得分:2)
你必须将Id作为隐藏,所以当你进入方法时,模型会将id赋予它(它有意义吗?)。尝试将其放在您的表单中
@Html.HiddenFor(m => m.ID)