Ich studiere ASP.NET MVC 5. Ich erstellte eine Ansicht "Erstellen". Aber ich benutze nicht Razor, um die Eingabefelder zu erzeugen, ich benutze Eingänge mit reinem HTML.Gefüllte Felder nach HttpPost Create - Objekt ist Null mit Eingabe
Create.cshtml
@model MyProject.Product
<h2>Create Product</h2>
<form method="post">
Description: <br />
<input type="text" name="Description" id="Description"/> <br />
ValueType: <br />
<input type="text" name="ValueType" id="ValueType"/>
<br />
<input type="submit" name="btSend"/>
</form>
Mein Controller:
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(Product product)
{
if (ModelState.IsValid)
{
db.Product.Add(product);
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
return View(product);
}
It works fine. I can create new products.
Aber ich brauche einige serverseitige Validierungen mit Anmerkungen im Modell zu verwenden. Also möchte ich die Daten senden und, wenn das Modell nicht gültig ist, gehe zurück zum Erstellen mit den Werten. Ich weiß, wie man die Validierungsnachrichten setzt. Also, ich habe es versucht:
@model MyProject.Product
<h2>Create Product</h2>
<form method="post">
Description: <br />
<input type="text" name="Description" id="Description" value="@Model.Description"/> <br />
ValueType: <br />
<input type="text" name="ValueType" id="ValueType" value="@Model.ValueType"/>
<br />
<input type="submit" name="btSend"/>
</form>
Wie binden Sie reine Eingabe mit HTML zu modellieren?
Warum Nullwert?
Vielen Dank.
Warum in der Welt benutzen Sie nicht Rasiermesser? Erzeugen Sie Formularsteuerelemente korrekt mit '@ Html.LabelFor()', '@ Html.TextBoxFor()' und '@ Html.ValidationMessageFor()' - und sehen Sie sich dann das erzeugte HTML an und vergleichen Sie das mit Ihrem, was Sie bedeutet habe keine 2-Wege-Modellbindung und keine Validierung –
Weil ich mit Front-End-Entwicklern arbeite, die mir den HTML-Code erstellen. Ich möchte wissen, ob es eine Möglichkeit gibt, mit dem Eingabetyp zu arbeiten. Wie man es bindet? – ComplexityAlg
Mit den 'HtmlHelper'-Methoden erhalten Sie den korrekten HTML-Code, der für die Bindung und Validierung von 2-Wege-Modellen erforderlich ist. Und '@ Model.Description' ist Rasierklingencode, also gibt es keinen Grund zu sagen, dass Sie nicht Rasierer –