0

模型

public partial class TblMusteriler { 
    public TblMusteriler() { 
       this.TblSayaclar = new HashSet<TblSayaclar>(); 
    } 
    public System.Guid sno { get; set; } 

    [Display(Name = "Müşteri No")] 
    [Required(ErrorMessage = "Müşteri numarası boş geçilemez.")] 
    public string musteri_no { get; set; } 

    [Display(Name = "Müşteri Adı")] 
    [Required(ErrorMessage = "Müşteri adı boş geçilemez.")] 
    public string musteri_adi { get; set; }

控制器

public ActionResult SayacEkle()
{
    var musteriler = entity.TblMusteriler.Select(x => new { x.sno, x.musteri_adi });
    ViewBag.musteri_id = new SelectList(musteriler.AsEnumerable(), "sno", "musteri_adi");

    return ContextDependentView(new TblSayaclar());
}

看法

@Html.DropDownList("sno", (SelectList)ViewBag.musteri_id, "--Müşteri Seçiniz--")

HTML 输出

<select data-val="true" data-val-number="The field sno must be a number." data-val-required="The sno field is required." id="sno" name="sno" class="input-validation-error"><option value="">--Müşteri Seçiniz--</option>

我不应该将 sno 类型更改为数字。它必须是引导类型。如何使用 guid 类型作为下拉列表中的值?

谢谢。

4

1 回答 1

1

如果要覆盖错误消息,可以使用可为空的 Guid 和 Required 属性:

[Required(ErrorMessage = "Please select a valid SNO")]
public System.Guid? sno { get; set; }

如果您希望默认元数据提供程序为可空类型隐式添加 Required 属性,您可以将您的AddImplicitRequiredAttributeForValueTypes属性设置Application_Start为 false:

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
于 2012-07-09T12:58:42.640 回答