【发布时间】:2014-02-13 12:18:45
【问题描述】:
为什么我会收到错误消息:
模板只能用于字段访问、属性访问、单维数组索引或单参数自定义索引器表达式
在此代码处:
@model IEnumerable<ArtSchoolProject.Models.Trainer>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_PageLayout.cshtml";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<ul class="trainers">
@foreach (var item in Model) {
<li>
<div>
<div class="left">
<a href="@Url.Action("Details", "Details", new { id = item.ID })">
<img src="~/Images/Trainer/@item.Picture" />
</a>
</div>
<div class="right">
@Html.ActionLink(item.Name,"Details",new {id=item.ID})
<br />
@Html.DisplayFor(modelItem=>@string. item.Description.ToString().Substring(0,100))
</div>
</div>
</li>
}
</ul>
在线:
@Html.DisplayFor(modelItem=>item.Description.ToString().Substring(0,100))
更新:
问题解决了。我添加到我的代码中:
@{
string parameterValue = item.Description.ToString().Substring(0, 100);
}
@Html.DisplayFor(modelItem=>parameterValue)
我的新代码:
@foreach (var item in Model) {
<li>
<div>
<div class="left">
<a href="@Url.Action("Details", "Details", new { id = item.ID })">
<img src="~/Images/Trainer/@item.Picture" />
</a>
</div>
<div class="right">
@Html.ActionLink(item.Name,"Details",new {id=item.ID})
<br />
@{
string parameterValue = item.Description.ToString().Substring(0, 100);
}
@Html.DisplayFor(modelItem=>parameterValue)
</div>
</div>
</li>
}
这只是一种可能。只是出于好奇,是否有解决错误的另一种解决方案?
【问题讨论】:
-
太棒了!您的解决方案对我有用,而且非常简单。如果您可以将解决方案作为答案而不是更新并接受它,那就太好了。因为我们通常会查看已接受的答案。
标签: c# asp.net string asp.net-mvc-4