Concatenación de cadenas en Razor

82

¿Cómo uniría dos cadenas en la sintaxis de Razor?

Si tuviera: @Model.addressy @Model.cityquisiera que el resultado fuera, address city¿qué haría? ¿Es tan simple como hacerlo @Model.address + " " + @Model.city?

TheWebs
fuente
2
¡No puede ser más simple que eso! :)
von v.

Respuestas:

198

Utilice la sintaxis de parentesis de Razor:

@(Model.address + " " + Model.city)

o

@(String.Format("{0} {1}", Model.address, Model.city))

Actualización : con C # 6 también puede usar $ -Notation (cadenas oficialmente interpoladas):

@($"{Model.address} {Model.city}")
Stephen Reindl
fuente
Encontré esto útil cuando estaba haciendo una cadena. Únase dentro de una cláusula @if. Dentro de los corchetes ondulados, esto no funcionó: string.Join(",", Model.AppInfo.MailingCodes); pero usando la respuesta aquí, esto funcionó:@(string.Join(",", Model.AppInfo.MailingCodes))
Mark
9

String.Format también funciona en Razor:

String.Format("{0} - {1}", Model.address, Model.city)
Simón
fuente
3

Puedes dar así ...

<a href="@(IsProduction.IsProductionUrl)Index/LogOut">
Alguacil
fuente
0

Puedes usar:

@foreach (var item in Model)
{
  ...
  @Html.DisplayFor(modelItem => item.address + " " + item.city) 
  ...
Pajoc
fuente
-2

el plus funciona bien, personalmente prefiero usar la función concat.

var s = cadena.Concat (cadena 1, cadena 2, cadena, 3, etc.)

d384
fuente