我對此有點困惑。 我穿越到視圖頁面視圖模型包含兩個屬性:在foreach循環中使用Html.Display和Html.DisplayFor在剃刀視圖中顯示覆合模型項目
public class UserProfileViewModel
{
public ApplicationUser userProfile { get; set; }
public AddressViewModel userAddress { get; set; }
}
的AddressViewModel本身包含一個列表,其項目我想查看頁面中顯示:
public class AddressViewModel
{
public int ID { get; set; }
......
public virtual List<GeoData> GeoDataList { get; set; }
}
呼我嘗試這對Wiew頁
@model MySite.ViewModels.UserProfileViewModel
...
@foreach (var item in Model.userAddress.GeoDataList)
{
<dd>
@Html.DisplayFor(modelitem => item.PlaceName)
</dd>
}
我得到正確的結果exptected 但是,當我試圖表明的複合結果,我需要
@foreach (var item in Model.userAddress.GeoDataList)
{
<dd>
@Html.DisplayFor(modelitem => (item.PlaceName + ", " + item.PostalCode + ", " + item.Latitude + ", " + item.Longitude))
</dd>
}
我得到以下異常:
Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
而當我試試這個:
@foreach (var item in Model.userAddress.GeoDataList)
{
<dd>
@Html.Display(item.PlaceName + ", " + item.PostalCode + ", " + item.Latitude + ", " + item.Longitude)
</dd>
}
我沒有得到任何的異常,並在所有(空白頁)沒有結果。
這是爲什麼?
它只是'
而且你沒有使用@ Html.Display獲取輸出(item.PlaceName +「,」+ item.PostalCode ...',因爲您的模型不包含與連接這些值所生成的名稱相同的屬性 –