Я поймал эту ошибку и бился головой - казалось, что это будет настоящая форма, поэтому из-за этой ошибки (и моей неспособности ее устранить) я схожу с ума.
Я простопытается обновить 1 поле в таблице.Обновляемое поле может быть или не быть нулевым.
Я получаю сообщение об ошибке в контроллере.Объект 'ilpCareerGoal' возвращается в ноль и вызывает ошибку.
Контроллер:
[Authorize]
public ActionResult editCareerGoal(int emplID)
{
ilpCareerGoal careerGoal = qService.getCareerGoal(emplID);
return View(careerGoal);
}
[Authorize]
[HttpPost]
public ActionResult editCareerGoal(ilpCareerGoal careerGoal)
{
try
{
qService.editCareerGoal(careerGoal);
return RedirectToAction("Index", "Home");
}
catch
{
throw;
}
}
Просмотр:
@model ILP.Models.ilpCareerGoal
@{
ViewBag.Title = "editCareerGoal";
}
<h2>Edit Your Career Goal</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm("editCareerGoal", "Home", FormMethod.Post, new { id = "careerGoalForm" }))
{
@Html.ValidationSummary(false)
<fieldset>
<legend>Career Goal</legend>
<div class="editor-label">
@Html.HiddenFor(model => model.emplID)
Record information here about what you're striving for professionally.
</div>
<div class="editor-field">
@Html.TextAreaFor(model => model.careerGoal, new { cols = "90", rows = "15" })
</div>
<p>
<input type="submit" value="Update" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
Когда я отлаживаю, я вижу, что careerGoal'в моем контроллере нет нуля ... Я ценю любую помощь здесь!
Обновление - может быть, это вещь модели?На самом деле у меня есть это поле в другой модели ... вот мой код модели для обновления на всякий случай ....
Модель:
public bool editCareerGoal(ilpCareerGoal tcareerGoal)
{
employeeDataClassesDataContext careerGoals = new employeeDataClassesDataContext();
ilpCareerGoal careerGoal;
try
{
careerGoal = careerGoals.ilpCareerGoals.Single(c => c.emplID == tcareerGoal.emplID);
careerGoal.careerGoal = tcareerGoal.careerGoal;
careerGoals.SubmitChanges();
return true;
}
catch
{
return false;
}
}