在虚拟属性Entity Framework中设置Required = false

时间:2015-08-11 16:21:11

标签: c# asp.net asp.net-mvc entity-framework

我有一个ASP.NET MVC应用程序,我正在使用Entity框架。 我有一个名为Propiedad的模型,它有一些没有必需属性的虚拟属性,在视图中我有一个虚拟属性的下拉列表,当我没有选择一个选项时,这告诉我必须选择一个选项。

我需要Grupo属性不需要选择另一个选项,我可以选择optionLabel而不显示验证器错误消息。

这是模型:

public class Propiedad
{
    [Key]
    public int Id { get; set; }
    public virtual Entidad Entidad { get; set; }
    public virtual PestanasPorEntidad Pestana { get; set; }
    public virtual GrupoDePropiedades Grupo { get; set; }
    public string Codigo { get; set; }
    public string Nombre { get; set; }
    public string TipoDeDatos { get; set; }
    public bool Requerido { get; set; }
    [Required]
    public int Orden { get; set; }
    public string Columna { get; set; }
}

这是视图(创建)的一部分:

<div class="form-group">
    @Html.LabelFor(model => model.Grupo, new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.DropDownListFor(m => m.Grupo.Id, (SelectList)(ViewBag.PestanaList), "Ninguno", new { @class = "form-control" })
        @Html.ValidationMessageFor(model => model.Grupo)
    </div>
</div>

这是控制器的一部分

private void SetGrupoListViewBag()
    {
        ViewBag.GrupoList = new SelectList(unitOfWork.GrupoDePropiedadesRepository.Get(), "id", "nombre");
    }

// GET: /GlobalAdmin/Propiedades/Create
public ActionResult Create()
{
    var propiedad = new Propiedad();
    SetTipoDeDatosListViewBag();
    SetEntidadListViewBag();
    SetPestanaListViewBag();
    SetColumnaListViewBag();
    SetGrupoListViewBag();
    var entidadId = Request["entidadId"] != null ? Convert.ToInt32(Request["entidadId"]) : -1;
    if (entidadId != -1)
    {
        propiedad.Entidad = unitOfWork.EntidadRepository.GetById(entidadId);
        return View(propiedad);
    }
    else
    {
        return View();
    }
}

0 个答案:

没有答案