2016-08-31 81 views
0

我有以下代碼:讓在剃刀模式隱藏輸入

<tr> 
    <td class="tdstyle"> 
     <i class="fa fa-phone iconPos" aria-hidden="true"></i> 
     <span>@Model.LicenseHolder.LegalPerson.ContactDetails.First(x => x.ContactDataType.Name == "BillingPhone").Detail</span> 
     @Html.HiddenFor(x => x.LicenseHolder.LegalPerson.ContactDetails.First(y => y.ContactDataType.Name == "BillingPhone").Detail) 
    </td> 
</tr> 

從上面的代碼生成的輸入字段是這樣的:

<input id="Detail" name="Detail" type="hidden" value="0730730037" /> 

這是不正確,因爲它不是綁定到該模型。我怎樣才能產生一個正確的隱藏輸入這樣的綁定工作?

+0

什麼是跨度 –

+0

值設置屬性的值,你想要在控制器中綁定,而不是視圖(因爲您在'HiddenFor()'方法中訪問的屬性的名稱不會生成'name ='Detail') –

+0

@StephenMuecke:我想要這樣做在視圖中。這可能嗎? – Bryan

回答

0

理想情況下這種邏輯應該在控制器斯蒂芬·馬克的建議,但如果這是不可能的,你可以嘗試使用一個for循環:

for (int i = 0; i < x.LicenseHolder.LegalPerson.ContactDetails.Length; i++){ 
    if (x.LicenseHolder.LegalPerson.ContactDetails[i].ContactDataType.Name == "BillingPhone") { 
     @Html.HiddenFor(x => x.LicenseHolder.LegalPerson.ContactDetails[i].Detail) 
     break; 
    } 
} 
+0

我無法使用長度,因爲ContactDetails是一個IENumerble – Bryan

+0

ContactDetails的數據類型究竟是什麼?它是IEnumerable ? –