2012-04-19 7 views
9

Когда я использую следующий код в своем представлении бритвы, он отображает <label for=""> someText</label>, а не <label for="">1. someText</label>, но я не могу понять, почему 1. удален во время рендеринга.Почему @ Html.Label() удаляет некоторые символы

@Html.Label(String.Format("{0}. someText",1)) 

Edit: Следующий код делает <label for="">1# someText</label>, как ожидалось.

@Html.Label(String.Format("{0}# someText",1)) 
+0

может пытаться ссылаться на объект?! – Treemonkey

ответ

20

Вы неправильно используете метод Html.Label. Он предназначен для:

Возвращает элемент HTML метки и имя свойства свойства , представленное указанное выражение.

Именно поэтому он путается, если у вас есть точка . в первом параметре, потому что она ожидает выражения свойства.

Однако, вы можете использовать второй перегрузки:

@Html.Label("", String.Format("{0}. someText",1)) 

Или просто выписывать HTML:

<label>@String.Format("{0}. someText", 1)</label> 
+0

вот что я подумал, хотя вы заставляете это звучать так, как будто вы знаете, о чем говорите: D – Treemonkey

+0

Это действительно помогло мне, ура. – Canvas

+0

Что делать, если текст моей метки поступает из базы данных, и я не знаю, в какой позиции «.» Существует? –

0

Синтаксис, который вы используете неправильно или мы можем сказать, что это не способ использования свойства с синтаксисом RAZOR. Вы можете использовать это, что может помочь вам.

**

@Html.LabelFor(model => model.PropertyName, 
     String.Format("{0}. " + @Model.PropertyName.ToString() + ",1)) 

**

1

Вы можете избежать использования "ярлык HTML Helper" и непосредственно использовать HTML "ярлык" и место, что вы хотите, чтобы правильно отобразить. Он также может сэкономить некоторое время;)

0

Я использовал это для таблицы данных, которая содержала двойной (Lat/Long) и увидела эту же проблему. Спасибо за советы (мне не разрешено комментировать).

Для меня эта проблема была решена ..

@foreach (var cell in item.ItemArray) 
{ 
    <td> 
    @Html.Label("",cell.ToString().Trim()) 
    </td> 
} 
Смежные вопросы