Erforderliche Feldvalidierung nicht zündend.MVC Erforderliche Feldvalidierung funktioniert nicht
Modell:
public class Client
{
[Required(ErrorMessage="Name Required")]
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string Name { get; set; }
public string Address { get; set; }
public string Mobile { get; set; }
public string Telephone { get; set; }
public string Fax { get; set; }
public string Company { get; set; }
}
Controller:
[HttpPost]
public ActionResult Create(Client client)
{
try
{
// TODO: Add insert logic here
ClientRepository rep = new ClientRepository();
rep.AddClient(client);
rep.Save();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
Ausblick:
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Create
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Add New Client</h2>
<% using (Html.BeginForm()) {%>
<%: Html.ValidationSummary(true) %>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.Name) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Name) %>
<%: Html.ValidationMessageFor(model => model.Name) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Address) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Address) %>
<%: Html.ValidationMessageFor(model => model.Address) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Mobile) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Mobile) %>
<%: Html.ValidationMessageFor(model => model.Mobile) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Telephone) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Telephone) %>
<%: Html.ValidationMessageFor(model => model.Telephone) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Fax) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Fax) %>
<%: Html.ValidationMessageFor(model => model.Fax) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Company) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Company) %>
<%: Html.ValidationMessageFor(model => model.Company) %>
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% } %>
<div>
<%: Html.ActionLink("Back to List", "Index") %>
</div>
</asp:Content>
** [Warum Validierungsserverseite und nicht die Seite Client] (http://stackoverflow.com/a/16245682/2007801) ** –
@ user2007801 nur für die Datensätze, müssen Sie nie in Benutzer vertrauen Eingang. Client-seitige Validierung kann deaktiviert, manipuliert, gefälscht usw. werden, so dass eine serverseitige Validierung immer notwendig ist. – Oscar