2017-01-13 43 views
0

我的第一個quesion,我很深刻的印象:)MVC 5 /綁定下拉列表包括殘疾值

首先,請原諒我的英語,我是法國人;)

我的問題是關於DropDownList,它鏈接(綁定)到對象O(在視圖V中編輯)的必需字段(F,int)幷包含元素列表(LE),其中一些元素被禁用。

我想在視圖中的行爲:

  • 當我創建一個對象,驗證必須TRIGG如果沒有 列表(OK)
  • 當我創建一個對象
  • ,殘疾人選擇列表中的元素必須是不可選擇的(OK)
  • 當我編輯對象
  • ,如果該字段是啓用值中,同樣的行爲(OK)
  • 當我編輯對象
  • ,如果該字段是禁用的值中,它必須在查看時顯示和選擇(OK)
  • ,當我修改一個對象,如果該字段是禁用的值中,當我發佈的數據,在客戶端驗證必須授權禁用的值進行驗證(OK一點點的JavaScript)

我的問題:

  • ,當我修改一個對象,如果該字段是禁用的值中,當我 後的數據,模型包含空值鏈接到 下拉列表即使我包括與標識的隱藏字段的字段。

這裏是我的一些代碼,以幫助理解我的問題。

當我發佈數據時,有什麼想法可以在模型中包含我的下拉列表的禁用值?

感謝您的幫助!


查看:

<div class="col-md-3"> 
    @Html.DropDownListFor(model => model.Currency.Id, (SelectList)ViewBag.Currencies, new { @class = "form-control ignore-desactivated" }) 
    @Html.ValidationMessageFor(model => model.Currency, "", new { @class = "text-danger" }) 
</div> 

JS:

$(function() { 
    $('form').validate().settings.ignore = '.ignore-desactivated'; 
}); 

來源時版本:

<div class="col-md-3"> 
    <select class="form-control ignore-desactivated" data-val="true" data-val-number="The field Id must be a number." data-val-required="The Id field is required." id="Currency_Id" name="Currency.Id"> 
     <option value="-1"></option> 
     <option disabled="disabled" value="9">Angolan kwanza (desactivated)</option> 
     <option value="10">Argentine peso</option> 
     <option disabled="disabled" selected="selected" value="1">Euro (desactivated)</option> 
     <option disabled="disabled" value="56">Gibraltar pound (desactivated)</option> 
     <option value="3">Great Britain Pound</option> 
    </select> 
    <span class="field-validation-valid text-danger" data-valmsg-for="Currency" data-valmsg-[replace][1]="true"></span> 
</div> 

我時,我要保存的數據模型:

https://i.stack.imgur.com/jQ9aH.png

回答

0

...我找到了答案,要求它(感謝我的同事),幾分鐘後...

我不知道,如果這是正確的,但有點js代碼刪除禁用物品之前,後的技巧:

//Delete disabled elements of lists before submit 
$('form').submit(function() { 
    $('.ignore-desactivated').each(function() { 
     $(this).children().each(function() { 
      $(this).removeAttr('disabled'); 
     }); 
    }) 
})