2012-12-30 62 views
1

我在嘗試驗證下拉列表時遇到了問題,我在這裏查看了類似的問題,並嘗試了這些建議,但仍然沒有運氣。我還沒有嘗試過讓我的Benefit Id爲空,但這是個好主意嗎?非常感謝驗證MVC4的下拉列表

型號我試圖驗證:

public class Benefit 
{ 
public int Id { get; set; } 
public string Name { get; set; } 


} 

視圖模型:

public class LookupVm 
{ 
    public SelectList Benefits { get; set; } 
} 

器設置:

var model = new LookupVm 
{ 

    Benefits = new SelectList(_repository.Benefits.OrderBy(n => n.Name).ToList(), "Id", "Name") 
} 

的觀點:

 @Html.DropDownListFor(benefits => Model.Benefits.SelectedValue, Model.Benefits, "-Select-") 
     @Html.ValidationMessageFor(benefits => Model.Benefits.SelectedValue) 
+0

http://beyondrelational.com/modules/24/syndicated/391/Posts/14810/dropdownlist-validation-in-aspnet-mvc-3razor.aspx –

+0

您需要更具體地瞭解您遇到的問題 - 是否有錯誤消息?無效的輸入被接受?請擴大。 –

+0

嗨,我的下拉列表被接受,即使是空的時候,我想驗證停止空/空選擇並顯示驗證錯誤 –

回答

2

你查看模型

public class LookupVm 
{ 
    public int SelectedBenefit { get; set;} 
    public SelectList Benefits { get; set; } 
} 

然後在視圖上添加你可以添加一個SelectedBenefit財產

@model LookupVm 

然後下拉列表必須是這樣的:

@Html.DropDownListFor(model => model.SelectedBenefit, model.Benefits, "-Select-") 
@Html.ValidationMessageFor(model => model.SelectedBenefit) 

您將獲得SelectedBenefit屬性上的選定ID,它將是必填字段。

+0

嗨Estaban,我按照你的例子,仍然沒有驗證下拉:( –

+0

我的lookupvm有沒有其他的選擇列表,這會導致混淆「SelectedBenefit」? –

+0

我不這麼認爲。是否啓用客戶端驗證?即添加jquery-1.7.1.min.js,jquery.validate.min.js ,jquery.validate.unobtrusive.min.js和jquery.unobtrusive-ajax.min.js。還需要在app.setting中添加兩個屬性。檢查http://stackoverflow.com/questions/11326792/asp-net-mvc -3和jquery-unobtrusive-ajax-min-js –