Questo è il modello con la sua convalida:immobili non necessari mantiene sempre data-val-required attributo
[MetadataType(typeof(TagValidation))]
public partial class Tag
{
}
public class TagValidation
{
[Editable(false)]
[HiddenInput(DisplayValue = false)]
public int TagId { get; set; }
[Required]
[StringLength(20)]
[DataType(DataType.Text)]
public string Name { get; set; }
//...
}
Ecco la vista:
<h2>Create</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()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Tag</legend>
<div>@Html.EditorForModel()</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
Ed ecco ciò che di ottenere renderd:
<form action="/Tag/Create" method="post">
<fieldset>
<legend>Tag</legend>
<div><input data-val="true" data-val-number="The field TagId must be a number." data-val-required="The TagId field is required." id="TagId" name="TagId" type="hidden" value="" />
<div class="editor-label"><label for="Name">Name</label></div>
<div class="editor-field"><input class="text-box single-line" data-val="true" data-val-length="The field Name must be a string with a maximum length of 20." data-val-length-max="20" data-val-required="The Name field is required." id="Name" name="Name" type="text" value="" /> <span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span></div>
...
</fieldset>
</form>
Il problema è che la convalida TagId viene generata anche se thare non è un attributo obbligatorio impostato sulla proprietà TagId. Per questo motivo non posso nemmeno passare la validazione lato client per creare un nuovo Tag in db. Cosa mi manca?
Salvato la mia giornata !!! – kheya
Grazie. Ho salvato anche la mia giornata. Secondo me questo è un comportamento al contrario. False dovrebbe essere l'impostazione predefinita. – Anish
@frnnky Ho aggiunto questo, ma non ha risolto [collegamento] (http://stackoverflow.com/questions/14452344/remove-required-property) My symph. per favore aiutatemi. Grazie – Amol