2016-09-20 9 views
5

Przykład:przy użyciu C# 6 interpolacji smyczkowy Razor poprawny sposób

<button data-value="$'{@item.CustomerID}_{@item.CustomerType}'"></button> 

Wynik:

$'{34645}_{71}' 

Oczekiwane:

34645_71 

Aktualizacja: Musiał włączyć C# 6 i zainstalować odpowiedni pakiet dla dwóch ostatnich technik @ smdrager do pracy. W programie VS2015 >> Kliknij opcję Menu projektu >> Kliknij opcję Włącz 6 #

+0

Czy jesteś martwy nastawiony na użycie interpolacji ciągów lub po prostu szukasz najlepszego sposobu na uzyskanie tego wyniku? –

+0

@DStanley, jeśli to możliwe, ustaw go w stanie spoczynku. – usefulBee

+1

Zobacz http://stackoverflow.com/questions/30832659/tring-interpolation-in-a-razor-view, aby włączyć C# 6 w widoku Razor –

Odpowiedz

8

W podanym przykładzie interpolacja ciągów znaków nie jest konieczna. Używając standardowej składni brzytwa, można uzyskać wynik, który chcesz z:

<button data-value="@(item.CustomerID)[email protected]"></button> 

która będzie produkować <button data-value="34567_123"></button>

equivallent z interpolacją byłoby:

@Html.Raw($"<button data-value='{item.CustomerID}_{item.CustomerType}'></button>") 

Ale stracić na HTML zakodowany aby zapobiec iniekcji skryptu (choć wydaje się to mało prawdopodobne w przypadku typów danych, z którymi masz do czynienia).

Edit:

Jeśli chcesz uzyskać całkowicie zwariowana, można zmieszać oba.

<button data-value="@($"{item.CustomerID}_{item.CustomerType}")"></button> 

Ale to jest bardziej szczegółowe i trudne do odczytania.

+0

Po prostu wypróbowałem pierwszą technikę, @ item.CustomerID_ nie działa. Identyfikator klienta nie zostanie rozpoznany z powodu podkreślenia. – usefulBee

+0

@DStanley, prawy i zweryfikowany..xx! Myślę, że należy to zmienić w odpowiedzi. – usefulBee

+2

Przepraszam za to. Poprawiłem odpowiedź. Czasami trzeba użyć nawiasów, aby wyjaśnić zamieszanie dla parsera maszynki do golenia. – smdrager

Powiązane problemy