Jedes Mal, wenn ich versuche, einen Datensatz zu bearbeiten, den ich in meinem ASP.NET MVC-Projekt erstellt habe, werden die Felder beim Klicken auf Speichern ungültig gemacht.Feld in der Datenbanktabelle wird ungültig, wenn Datensatz in Ansicht bearbeitet wird
Hier ist ein Teil des Codes für meine bearbeiten Get und Post in meinem Controller:
Bewertung Controller:
// GET: Reviews/Edit/5
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Review review = db.Reviews.Find(id);
if (review == null)
{
return HttpNotFound();
}
ViewBag.ReviewID = new SelectList(db.Reviews, "ReviewID", "Rating", review.ReviewID);
return View(review);
}
// POST: Reviews/Edit/5
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "ReviewID,Username,WellnessService,Rating,Feedback,Date")] Review review)
{
if (ModelState.IsValid)
{
db.Entry(review).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("ReviewEdit");
}
ViewBag.ReviewID = new SelectList(db.Reviews, "ReviewID", "Rating", review.ReviewID);
return View(review);
}
Hier ist der Code für meine Ansicht namens Edit:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>@Html.DisplayFor(model => model.WellnessService)</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.ReviewID)
<div class="form-group">
@Html.LabelFor(model => model.Rating, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10" align="left">
@{
List<SelectListItem> listItems = new List<SelectListItem>();
listItems.Add(new SelectListItem { Text = "1", Value = "1" });
listItems.Add(new SelectListItem { Text = "2", Value = "2" });
listItems.Add(new SelectListItem { Text = "3", Value = "3" });
listItems.Add(new SelectListItem { Text = "4", Value = "4" });
listItems.Add(new SelectListItem { Text = "5", Value = "5" });
listItems.Add(new SelectListItem { Text = "6", Value = "6" });
listItems.Add(new SelectListItem { Text = "7", Value = "7" });
}
@Html.DropDownListFor(model => model.Rating, listItems, "Please choose value")
@Html.ValidationMessageFor(model => model.Rating, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Feedback, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.TextAreaFor(model => model.Feedback, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Feedback, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to My Reviews", "ReviewEdit", new { @class = "btn btn-success btn-lg" })
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Hilfe würde sehr geschätzt
Vielen Dank im Voraus
Können Sie einen Breakpoint in der Controller-Methode nach 'Edit()' setzen und sehen, was der Inhalt von 'Review' ist? Ist es auch null? –