Как заставить помощника текстового поля отображать правильную разметку HTML для строгой HTML 4.01? - PullRequest
1 голос
/ 26 сентября 2011

У меня есть следующий код на моей странице / просмотре:

@Html.TextBoxFor(x => x.Name, new { maxlength = "50", size = "50" })

Получен вывод:

<input id="Name" maxlength="50" name="Name" size="50" type="text" value="" />

Я использую следующий тип документа:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Моя страница не проверяется с помощью инструмента проверки HTML из-за закрытия /> элемента ввода.Как мне получить помощника для создания элемента ввода, похожего на:

<input id="Name" maxlength="50" name="Name" size="50" type="text" value="">

Ответы [ 3 ]

1 голос
/ 26 сентября 2011

Я думаю, что HTML, созданный помощником TextBoxFor, является правильным или, по крайней мере, может использоваться в любом браузере, но если вы хотите создать свой собственный вспомогательный метод, вы можете добавить метод расширения в HtmlHelper. Например:

public static class MyExtension
{
  public static MvcHtmlString MyTextBox(this HtmlHelper html, string var1, string var2)
  {
     StringBuilder tag= new StringBuilder();
     // create your tag and wrtite it in string buffer
     return MvcHtmlString.Create(tag.ToString());
  }
}
0 голосов
/ 26 сентября 2011

Помощники HTML в asp.net mvc - это просто Помощники , которые упрощают процесс создания HTML.Они не включают в себя ничего магического, просто отображают html.Если вы хотите иметь абсолютный контроль над сгенерированным HTML, вы можете создать своих собственных помощников или написать чистый HTML в вашем представлении .В этом нет ничего плохого.

Кстати, asp.net mvc 3 по умолчанию использует data-* атрибутов, которые являются частью html5.Если вы абсолютно не хотите их использовать, отключите в web.config

  <appSettings>
    <add key="ClientValidationEnabled" value="false" />
    <add key="UnobtrusiveJavaScriptEnabled" value="false" />
  </appSettings>
0 голосов
/ 26 сентября 2011

HTML, сгенерированный помощниками HTML, является допустимым XHTML, и разница между строгим HTML 4.01 и XHTML заключается в том, что XHTML требует пустых элементов (таких как input, br, link и т. Д.) Для закрытия, как в xml. Я думаю, что XHTML является более современным стандартом, и если нет конкретных ограничений, вы должны его использовать, одной из причин будет то, что ваш HTML в таком случае может использоваться как XML (для обработки XSLT и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...