I have the following in my ASP.Net MVC 3 Razor View
@foreach (var item in Model.FormNotes) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.User.firstName)
</td>
</tr>
}
Which works fine, however, I would like to concatenate the string to display both the firstName and lastName, but when I try to do this
<td>
@Html.DisplayFor(modelItem => item.User.firstName + @item.User.lastName)
</td>
I get the following error
Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions
Does anyone know how to concatenate a string in a Razor View?
Thanks all.
EDIT
My Razor View accepts a ViewModel which looks like this
public class ViewModelFormNoteList
{
public IList<Note> FormNotes { get; set; }
}
I would like to put the FullName property in here, as suggested by Roy, however, I am not sure how to get it working???
DisplayFor
needs a property to map to, so a concatenation is impossible. You might expose a read-only property FullName on your model, which then returns the concatenation:
public string FullName
{
get
{
return User.FirstName + " " + User.LastName;
}
}
and then use that in your DisplayFor
.
@Html.DisplayFor(modelItem => modelItem.FullName);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With