2016-08-31 6 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 ですか? –

関連する問題