У меня есть следующая таблица базы данных:
А вот код, который я использую для проверки модели, созданной Entity Framework:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
namespace UTEPSA.Models
{
[MetadataType(typeof(Area_Validation))]
public partial class Area
{
}
public class Area_Validation
{
[Required(ErrorMessage = "Campo requerido: Debe elegir un Jefe valido.")]
public int IDJefe { get; set; }
[Required(ErrorMessage = "Campo requerido: Nombre")]
public string Nombre { get; set; }
}
}
Поле идентификатора находится в первичном ключе int и является идентификатором, поэтому оно автоинкрементно, и мне не нужно вводить поле.
Однако, когда я пытаюсь сохранить форму для редактирования, мне НУЖНО написать любое число, чтобы оно прошло.
When I leave the field blank:
Validation fails.
When I type in a string:
Validation fails.
When I type in ANY number:
Validation passes.
Любое предложение о том, как игнорировать это поле?
Визуализированный HTML-код:
<form action="/area/create" method="post">
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<label for="ID">ID</label>
</div>
<div class="editor-field">
<input id="ID" name="ID" type="text" value="0" />
</div>
<div class="editor-label">
<label for="IDJefe">IDJefe</label>
</div>
<div class="editor-field">
<input id="IDJefe" name="IDJefe" type="text" value="" />
</div>
<div class="editor-label">
<label for="Nombre">Nombre</label>
</div>
<div class="editor-field">
<input id="Nombre" name="Nombre" type="text" value="" />
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
</form>