Łączenie ciągów w Razor

84

Jak połączyć dwa ciągi w składni Razor?

Gdybym miał: @Model.addressi @Model.citychciałbym, żeby wyjście było address citytym, co bym zrobił? Czy to tak proste, jak zrobienie @Model.address + " " + @Model.city?

TheWebs
źródło
2
To nie może być prostsze! :)
von v.

Odpowiedzi:

200

Użyj składni rodzicielskiej Razor:

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

lub

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

Aktualizacja : w C # 6 możesz również użyć $ -Notation (oficjalnie interpolowane ciągi):

@($"{Model.address} {Model.city}")
Stephen Reindl
źródło
Okazało się to przydatne, gdy robiłem ciąg znaków.Join wewnątrz klauzuli @if. W nawiasach falistych to nie zadziałało: string.Join(",", Model.AppInfo.MailingCodes); ale używając odpowiedzi tutaj, zadziałało:@(string.Join(",", Model.AppInfo.MailingCodes))
Mark
10

String.Format działa również w Razor:

String.Format("{0} - {1}", Model.address, Model.city)
Szymon
źródło
4

Możesz tak dawać ...

<a href="@(IsProduction.IsProductionUrl)Index/LogOut">
Szeryf
źródło
0

Możesz użyć:

@foreach (var item in Model)
{
  ...
  @Html.DisplayFor(modelItem => item.address + " " + item.city) 
  ...
Pajoc
źródło
-2

plus działa dobrze, osobiście wolę używać funkcji concat.

var s = string.Concat (ciąg 1, ciąg 2, ciąg, 3 itd.)

d384
źródło