如何操作Html.ActionLink以显示指向另一个控制器的链接?

时间:2010-03-01 03:39:30

标签: c# asp.net-mvc .net-3.5 actionlink

在HomeController的Details视图中,我想在MiscController上创建一个指向Email视图的链接。另外,我需要在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 个答案:

答案 0 :(得分:6)

首先,您错过了=之后的<%。这就是为什么它没有输出任何东西。

此外,您传递routeValues参数的方式是错误的。

应该是:

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

请注意,text参数将在输出中进行编码,因此使用该参数发送HTML毫无意义。
最好使用CSS来设置HTML样式。

例如:

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

并设置锚元素的class属性:

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