2017-02-14 15 views
4

Я пытаюсь сделать свой вид бритвы немного более динамичным. Я пытаюсь установить встроенный стиль для TDs в таблице.C# строки как атрибуты html

Я сделал строку:

@{ 
    double width = 100/5; 
    String widthStyleString = String.Format("style=\"width: {0}%;\"", width); 
} 

, которые работали здорово, когда я тестировал его как обычный текст. Я получил:

style="width: 20%;" 

Однако, когда я попытался поставить его в HTML-элемент я получил это:

<td class="table--td" style="&quot;width:" 20%;&quot;="">Some Value</td> 

Как бы я его не разбора "в качестве субъекта (это не будет? дайте мне ввести & Quot без превращения ее в фактический «)


обновление:

Это еще хороший способ сделать HTML-атрибуты. Однако в этом случае это тег стиля, комментарии пользователей правильные; лучше сделать это в css, а не в логике. Если у вас есть эта точная проблема (атрибут стиля), то столбец ниже поможет вам. В противном случае Html.Raw() хорош.

Equal sized table cells to fill entire width of holding table

Эта связь будет решить эту проблему, если вы НЕ должны беспокоиться о IE8 и ниже. В противном случае вам все равно придется указывать процент ширины в вашем css.

+5

Оставьте html html и код для кода: ' Некоторое значение' – LocEngineer

+0

Я сделал это первоначально, но это единственный стиль, который я хочу на мой элемент, который нельзя сделать в css. Я думал, что это сделает более чистую разметку. – Christian4423

ответ

8

Вы можете использовать @Html.Raw, потому что функция @ будет HTML закодировать вывод:

<td class="table--td" @Html.Raw(widthStyleString)>Some Value</td> 

вместо:

<td class="table--td" @widthStyleString>Some Value</td> 
+0

Отлично! Спасибо за быстрый ответ. Я принимаю это как ответ, когда время разрешено. – Christian4423

2

Посмотрите на @Html.Raw()

Вы могли бы сделать что-то подобное с тем, что вы в настоящее время:

<td class="table--td" @Html.Raw(widthStyleString)>Some Value</td> 

Я бы, вероятно, посмотрел на лучший способ генерации строки. Вы можете создать свой собственный помощник HTML, который принимает параметры вашего стиля и вашего содержимого, а затем выводит его на страницу. Преимущество этого заключается в том, что ваш код находится в одном месте (DRY).

Еще одна вещь, о которой стоит подумать, - это тот факт, что вы используете встроенные стили. Неужели вы не можете использовать силу CSS для достижения того, чего хотите?

+0

Вы правы, Inline - плохая практика, но я оставляю это для этого единственного исключения. (Помимо display: none) Я использую CSS/Sass для всех других стилей, но это должно быть динамичным, и это намного проще сделать, когда Я могу получить процент с быстрой математикой. Я предпочитаю полностью отделять логику от представления. Мне нужно будет изучить html-помощников.Я новичок в конце C#, и это было бы очень крутой частью для понимания. Спасибо! – Christian4423

+1

[This] (http://www.webdevelopmenthelp.net/2014/07/custom-html-helper-in-aspnet-mvc.html) является довольно быстрой ссылкой, чтобы помочь вам начать работу – maccettura

+1

Благодарим за обмен знаниями :) хорошего дня! – Christian4423