14

我的 ASP.Net MVC 3 Razor 视图中有以下内容

@foreach (var item in Model.FormNotes) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.User.firstName)
    </td>
</tr>
}

哪个工作正常,但是,我想连接字符串以显示名字和姓氏,但是当我尝试这样做时

<td>
  @Html.DisplayFor(modelItem => item.User.firstName + @item.User.lastName)
</td>

我收到以下错误

模板只能与字段访问、属性访问、一维数组索引或单参数自定义索引器表达式一起使用

有谁知道如何在 Razor 视图中连接字符串?

谢谢大家。

编辑

我的 Razor View 接受一个看起来像这样的 ViewModel

public class ViewModelFormNoteList
{
    public IList<Note> FormNotes { get; set; }
}

我想按照 Roy 的建议将 FullName 属性放在这里,但是,我不知道如何让它工作???

4

4 回答 4

19

DisplayFor需要一个属性来映射,所以串联是不可能的。您可能会在模型上公开一个只读属性 FullName,然后返回串联:

public string FullName
{
   get
   {
      return User.FirstName + " " + User.LastName;
   }
}

然后在你的DisplayFor.

@Html.DisplayFor(modelItem => modelItem.FullName);
于 2012-05-29T11:01:58.933 回答
7
 @Html.DisplayFor(modelItem => item.FirstName) @Html.DisplayFor(modelItem => item.LastName)
于 2013-04-04T07:16:34.700 回答
3

你可以这样做:

@foreach (var item in Model.FormNotes) { 
var conc = item.User.FirstName + item.User.LastName;
<tr> 
   <td> 
        @Html.Display(conc) 
    </td> 
</tr> 
}

或者在模型中拥有属性 FullName 会是更好的解决方案

于 2012-05-29T11:03:18.270 回答
0

这是在.CSHTML中连接不同字符串的语法

@($"{User.FirstName} {User.MiddleName} {User.LastName}")

于 2020-07-27T07:30:26.357 回答