Как манипулировать Html.ActionLink, чтобы показать ссылку на другой контроллер? - PullRequest
2 голосов
/ 01 марта 2010

В подробном представлении HomeController я хотел бы создать ссылку на представление электронной почты в MiscController. Кроме того, мне нужно добавить элемент в QueryString.

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

<a href="http://www.blah.com/misc/SendMail?id=6">
    <font size="1">Report problems</font>
</a>

Я пробовал следующее:

<% Html.ActionLink("<font size=\"1\">Report</font>", "SendMail", "Misc", Model.ImageID, new object()); %>

Не возвращено никакой ссылки. Чего мне не хватает?

1 Ответ

6 голосов
/ 01 марта 2010

Прежде всего, вы пропустили = после <%. Вот почему он ничего не выводил.

Кроме того, способ, которым вы передали routeValues параметр, был неверным.

Должно быть:

<%=Html.ActionLink("<font size=\"1\">Report</font>", "SendMail", "Misc", 
    new { id = Model.ImageID }, null /*htmlAttributes*/) %>

Имейте в виду, что аргумент text будет закодирован в выходных данных, поэтому нет смысла отправлять HTML с этим аргументом.
Для стилизации HTML лучше использовать CSS.

Например:

a.myLink {font-size: 0.5em;color:yellow;}

И чтобы установить атрибут класса для элемента привязки:

<%=Html.ActionLink("Report", "SendMail", "Misc", 
    new { id = Model.ImageID }, new { @class = "myLink" }) %>
...