2012-07-09 16 views
0

模型ASP.NET MVC下拉列表值字段xxx必須是一個數字?

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類型作爲值?

謝謝。

回答

1

如果你想覆蓋,你可以使用一個可以爲空的Guid和所需的屬性錯誤信息:

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

如果你想默認的元數據提供商隱含增加對可空類型,你可以設置所需要的屬性您的Application_Start中的AddImplicitRequiredAttributeForValueTypes屬性爲false:

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false; 
相關問題