2013-08-07 65 views
2

我有以下兩個項目,其中一個是隻讀的,: -粘結劑交易將如何模型只讀和殘疾

@Html.TextBoxFor(model => model.Technology.Tag, new 
     { @readonly = "readonly" }) 

而另一個是殘疾人: -

@Html.DropDownListFor(model => model.Customer.NAME, ((IEnumerable<TMS.Models.AccountDefinition>)ViewBag.Customers).Select(option => new SelectListItem 
{ 
    Text = (option == null ? "None" : option.ORG_NAME), 
    Value = option.ORG_NAME.ToString(), 
    Selected = (Model != null) && (Model.Customer != null) & (option.ORG_NAME == Model.Customer.NAME) 
}), "Choose...", new { disabled = "disabled" }) 

所以將ASP .net mvc模型綁定器綁定兩個項目? ,否則它會忽略任何只讀和任何禁用的字段?

回答

1

它會綁定它們,但只要您使用正確的數據填充它們,那應該不重要。此外,假設您正在使用視圖模型,則可以讓您的代碼將這些模型映射到實體,只需忽略所討論的值即可。假設這是來自表單的標準HTTP Post,HTTP不會發布禁用或只讀字段,這意味着它們將爲null或模型中的默認值,因此您需要對此進行說明。

如果您希望活頁夾忽略這些值,請使用TextBoxDropDownList,並確保它們的命名與您的屬性不相同。如果您不使用「For」,則需要在視圖中添加代碼以設置值。

+0

所以你的意思是禁用和只讀'For'將始終受模型綁定器綁定? –

+0

是的東西是使用一個綁定,這是爲了 – Maess

+0

但是該字段被禁用。它不會被髮送。 – Pluc

0

ReadOnly文本字段被綁定。

我一直在試圖找到解決方法來解決未綁定的dropdownbox值。以下是我想出了:

$('#xxx').change(function() {$(this).val(lastSel_xxx);}); 
var lastSel_xxx = $("#xxx option:selected").val(); 

使用上面爲您的視圖中的每個HTML元素的代碼(這將要求您能夠記錄每個ID輸出),並用元素名稱取代「XXX」。

當用戶選擇除選定的初始選項之外的其他選項時,它將恢復爲原始狀態。

HOpe this help!