我在ASP.Net MVC 3 Razor View中有以下内容
@foreach (var item in Model.FormNotes) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.User.firstName)
</td>
</tr>
}
哪个工作正常,但是,我想连接字符串以显示firstName和lastName,但是当我尝试这样做时
<td>
@Html.DisplayFor(modelItem => item.User.firstName + @item.User.lastName)
</td>
我收到以下错误
模板只能用于字段访问,属性访问,一维数组索引或单参数自定义索引器表达式
有没有人知道如何在Razor View中连接字符串?
谢谢大家。
修改
我的Razor View接受一个看起来像这样的ViewModel
public class ViewModelFormNoteList
{
public IList<Note> FormNotes { get; set; }
}
我想将FullName属性放在这里,正如Roy所建议的那样,但是,我不知道如何让它工作?
答案 0 :(得分:18)
DisplayFor
需要一个属性来映射,因此连接是不可能的。您可以在模型上公开只读属性FullName,然后返回串联:
public string FullName
{
get
{
return User.FirstName + " " + User.LastName;
}
}
然后在DisplayFor
中使用它。
@Html.DisplayFor(modelItem => modelItem.FullName);
答案 1 :(得分:5)
@ Html.DisplayFor(modelItem =&gt; item.FirstName)@ Html.DisplayFor(modelItem =&gt; item.LastName)
答案 2 :(得分:2)
你可以这样做:
@foreach (var item in Model.FormNotes) {
var conc = item.User.FirstName + item.User.LastName;
<tr>
<td>
@Html.Display(conc)
</td>
</tr>
}
或者在模型中使用属性FullName是更好的解决方案
答案 3 :(得分:0)
以下是在 .CSHTML
中连接不同字符串的语法@($“ {User.FirstName} {User.MiddleName} {User.LastName}”)