Ich habe derzeit eine Ansicht, die zwei Textfelder enthält, in die Benutzer einige Daten eingeben können. Ein Textfeld erlaubt nur Werte von 1-10, der andere eine Zeichenfolge. Ich bin mir nicht sicher, welche Codeänderung ich gemacht habe, aber das zweite Textfeld, das einen String akzeptiert, funktioniert nicht mehr. Wenn ich beispielsweise eine Zeichenfolge eintrage und versuche, das Formular zu senden, erhalte ich eine Validierungsnachricht mit der Meldung "Der Wert" (Zeichenfolge) "ist ungültig. Im Folgenden finden Sie einige Codeschnipsel in meiner Lösung.Der Wert "(String)" ist ungültig
Entität:
public class MovieReview
{
public int Id { get; set; }
[Range(1, 10)]
[Required]
public int Rating { get; set; }
public string Review { get; set; }
public int MovieId { get; set; }
}
Controller:
public class ReviewsController : Controller
{
private MovieLoversDb _db = new MovieLoversDb();
public ActionResult Index([Bind(Prefix = "id")]int movieId)
{
var movie = _db.Movies.Find(movieId);
if (movie != null)
{
return View(movie);
}
return HttpNotFound();
}
[HttpGet]
public ActionResult Create(int movieId)
{
return View();
}
[HttpPost]
public ActionResult Create(MovieReview review)
{
if (ModelState.IsValid)
{
_db.MovieReviews.Add(review);
_db.SaveChanges();
return RedirectToAction("Index", new { id = review.MovieId });
}
return View(review);
}
Teilansicht:
@model MovieLovers.Models.MovieReview
@{
ViewBag.Title = "Review a Movie";
}
<h2>Review a Movie</h2>
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>New Review</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Rating)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Rating)
@Html.ValidationMessageFor(model => model.Rating)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Review)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Review)
@Html.ValidationMessageFor(model => model.Review)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.ReviewerName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.ReviewerName)
@Html.ValidationMessageFor(model => model.ReviewerName)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
Die Frage n Was ist, was mache ich falsch? Warum wird dieser Validierungsfehler generiert?
Ich glaube, Sie haben eine andere Ansicht gepostet. Ihre veröffentlichte Ansicht zeigt nur die Liste an. Hab ich recht? –
Ja, ich entschuldige mich. Jetzt aktualisieren –
Haben Sie ein anderes Feld auf der gerenderten Seite namens 'Review'? – Jasen