2010-03-02 4 views
1

У меня есть этот помощник, на мой взгляд:ASP.NET MVC: возможно ли получить имя элемента управления внутри представления?

<%= Html.StandardOverlayCreateButton<EmployeeController>()%> 

Это создает следующий HTML:

<a rel="#overlay" href="/Employee/Create"> 
<button type="button"> 
Create</button> 
</a> 

мне не нравится это в любом случае.

Любые предложения :)?

Я также спрашиваю себя, когда создавать расширение html-помощника и просто писать чистый HTML-код?

ответ

1

В этом случае я считаю, что помощник оправдан, поскольку количество «кода» HTML, которое вы заменяете, является значительным и концептуально одним объектом, то есть стилизованной «кнопкой». Однако вы можете получить доступ к контроллеру, используя вид ViewContext на ViewPage.

+0

Спасибо, теперь у меня есть кнопка, которая знает имя своего контроллера, и кнопка имеет 0 параметров, и, на мой взгляд, мне не нужно импортировать пространство имен данного контроллера :) – Rookian

2

Я не понимаю, почему спецификация контроллера в HTML-помощнике невелика. Это поможет с рефакторингом, поскольку он строго типизирован, и это поможет получить intellisense.

Что касается расширения/записи HTML аргумента ... если вы собираетесь использовать те же функции снова и снова, писать HTML метод расширения помощника :-)

Надеется, что это помогает.

+0

для чего я использую ascx-контролы? У них все еще есть смысл в ASP.NET MVC? – Rookian

+0

Элементы управления ascx пользователя используются для частичных представлений в asp.net mvc, хотя они также могут использоваться для пользовательского форматирования управления через помощники вида (например, для отображения календаря) afaik. Ответит ли это на ваш вопрос, поскольку я не совсем полностью понимаю ваш комментарий? Cheers – WestDiscGolf

+0

В ASP.NET Webforms я думаю, что я бы написал элемент управления ascx, и я просто спрашиваю себя, когда я использую этот подход. – Rookian

Смежные вопросы