模型
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类型。如何在下拉列表中使用guid类型作为值?
感谢。
答案 0 :(得分:1)
如果要覆盖错误消息,可以使用可为空的Guid和Required属性:
[Required(ErrorMessage = "Please select a valid SNO")]
public System.Guid? sno { get; set; }
如果您希望默认元数据提供程序隐式添加可空类型的Required属性,您可以将AddImplicitRequiredAttributeForValueTypes
中的Application_Start
属性设置为false:
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;