В случая с фрагмента на етикета ви няма особено значение. Бих предпочел по-простия синтаксис (обикновен HTML).
Повечето помощни методи също не ви позволяват да обграждате друг елемент. Това може да бъде съображение, когато избирате да използвате/не използвате такъв.
Строго типизирани еквиваленти
Все пак си струва да се отбележи, че това, което използвате @Html.[Element]For<T>()
методите, вие получавате важни функции. Обърнете внимание на "За" в края на името на метода.
Пример:
@Html.TextBoxFor( o => o.FirstName )
Това ще обработва създаването на ID/Име въз основа на йерархията на обекта (което е критично за обвързването на модела). Той също така ще добави ненатрапчиви атрибути за валидиране. Тези методи приемат израз като аргумент, който препраща към свойство в модела. Метаданните на това свойство се получават от MVC рамката и като такова то "знае" повече за свойството, отколкото неговият аналог на низов аргумент.
Той също така ви позволява да работите с UI код по строго типизиран начин. Visual Studio ще подчертае синтактичните грешки, докато не може да го направи с низ. Изгледите също могат да бъдат компилирани по желание заедно с решението, което позволява допълнителни проверки по време на компилиране.
Други съображения
Понякога HTML помощен метод ще изпълнява и допълнителни задачи, които са полезни, като Html.Checkbox
и Html.CheckboxFor
, които също създават скрито поле, което върви заедно с квадратчето за отметка. Друг пример са свързаните с URL методи (като за хипервръзка), които са съобразени с маршрута.
<!-- bad -->
<a href="/bg/foo/bar/123">my link</a>
<!-- good -->
@Html.ActionLink( "my link", "foo", "bar", new{ id=123 } )
<!-- also fine (perhaps you want to wrap something with the anchor) -->
<a href="/[email protected]( "foo", "bar", new{ id=123 } )"><span>my link</span></a>
Има леко предимство в производителността при използването на обикновен HTML в сравнение с код, който трябва да се изпълнява всеки път, когато изгледът се визуализира, въпреки че това не трябва да бъде решаващият фактор.
person
Tim Medora
schedule
25.04.2013