2013-03-21 44 views
1

我正在創建一個ASP.Net MVC 4站點,其中有一個創建操作的控制器。ASP.Net MVC多點下降,單個列表,只允許唯一選擇

Create操作提供了一個包含多個下拉列表的視圖,每個下拉列表都要綁定到我的數據庫中的單個實體列表。

但是,我想確保每個下拉列表中的選擇都是唯一的。

我該怎麼做呢?每次做出選擇以更新每個其他下拉列表中的可用選項時,是否需要執行某種AJAX回發服務器?還是有更簡單的方法?

非常感謝,

馬丁瓊斯。

+1

好,如果你想避免錯誤「驗證之前」,比你必須使用Ajax(你的場景)或(可能更容易)jQuery:事件每dropDown更改,刪除選項具有相同的值在所有其他dropDown上選擇一個。順便說一句,我會添加「服務器端」驗證之前保存到數據庫。 – 2013-03-21 16:49:20

+0

@RaphaëlAlthaus非常感謝。當你說服務器端驗證時,你會在保存到數據庫之前在控制器操作中執行這些操作,還是在模型級別應用我想要的約束?再次感謝! – MartynJones87 2013-03-21 18:21:16

+1

那麼,如果我是你(但我不是),我會看看FluentValidation(http://fluentvalidation.codeplex.com/),非常適合可讀性和廣泛的驗證規則 – 2013-03-21 18:23:33

回答

0

在您的模型中,您可以爲每個下拉菜單設置單獨的Id字段。 東西如下

<%: Html.DropDownListFor(model => model.DropwdownId1,Model.DropdownEntities) %> 
<%: Html.DropDownListFor(model => model.DropwdownId2,Model.DropdownEntities) %> 
<%: Html.DropDownListFor(model => model.DropwdownId3,Model.DropdownEntities) %> 

其中Dropdownentities將只從數據庫返回的實體。

您應該能夠看到Post Action中每個下拉列表的選定值。 DropwdownId1,DropwdownId2

+0

感謝您的回答。每個下拉菜單是否使用單一來源,是否會阻止在多個下拉菜單中進行相同的選擇? – MartynJones87 2013-03-21 18:22:20

+0

不,它不會。選擇將保存在ID中。您可以在多個下拉菜單中選擇多個宿舍或多個選項 – swapneel 2013-03-22 07:50:18

相關問題