0

我是 MVC 新手,在 asp.net 中使用 MVC 2.0。

这是 stylesheet1.css 的内容:

.h1{color:Red;}

这是 display.aspx 的内容:

< head runat="server">
<## Heading ##link href="../../Content/StyleSheet1.css" rel="stylesheet" type="text/css" />
< /head> 
<## body>
<## h1 class="h1">Hiiiiiiiiiiiiiiiii  <## /h1>
<## /body>

这是 index.aspx 的内容:

##<%= Html.ActionLink("Move to display.aspx","display","home",new {id=1}, new 
{@class="h1"}) %>

##<%= Html.ActionLink("Move to display.aspx", "display")%>

我的问题是方法上的htmlattributes参数有什么用,html.actionlink因为我发现上面的链接都给出了相同的结果。

4

3 回答 3

1

可能您的操作链接呈现如下内容:

<a href="home/display/1" class="h1">Move to display.aspx</a>

<a href="display">Move to display.aspx</a>

它们之间的区别在于第一个将 css 类设置为h1样式类(而不是标签),然后将 1 作为 url 上的 id 参数传递给家庭控制器上的显示操作方法。第二个是显示动作方法(如果它在家庭控制器的视图中,它将进入家庭控制器的显示动作方法),它没有设置任何 css 类。两个操作链接都将文本呈现为Move to display.aspx. 如果您没有 h1 类设置的 css,则这种情况下的 htmlAttributes 没有区别。

你能做什么

首先,在您的 css 文件中创建一个具有有效名称的样式表,如下所示:

.display {
    color: blue;
    /* other css properties*/
}

class在您看来,使用在属性上设置的此样式表呈现链接:

<%=Html.ActionLink("Move To Display", "Display", "Home", new { id = 1 }, new { @class="display" }) %>

关于 htmlAttributes

htmlAttributes 参数是一个对象,其中包含要为元素设置的 HTML 属性。例如,如果您想在输出链接中添加一个 css 类,您可以通过此参数添加此属性,例如rel, title, tabindex, javascript 事件等onclick

您在方法中有很多重载Html.ActionLink。您不需要传递此参数,但如果您需要具有此参数的重载,您可以只传递,null并且不会在您的 html 中输出任何内容。如果你这样做:

@Html.ActionLink("Text Link", "Action", "Controller", new { id = 5 }, new { @class = "button", title = "Some Title Content", rel = "10" })

如果将是以下签名方法:

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    Object routeValues,
    Object htmlAttributes
)

它会渲染

<a href="Controller/Action/5" class="button" title="Some Title Content" rel="10">Text Link</a>
于 2013-01-03T10:28:18.737 回答
0

h1分配给链接的类被浏览器的默认样式表覆盖。(如果您想了解这方面的详细信息,请阅读css 特异性)。

您需要做的就是将您的 css 类定义更改为

a.h1{color:Red;}

(注意a定义前面的)

现在这个链接中的文字:

<%= Html.ActionLink("Move to display.aspx","display","home",new {id=1}, new 
{@class="h1"}) %>

将是红色的。

于 2013-01-03T13:39:00.887 回答
0

如果您进行搜索,Google 上有大量文章,例如:

在 Html.ActionLink 上使用 CSS

ActionLink html属性

MVC HTML 助手

希望这些对你有用。

于 2013-01-03T09:18:28.097 回答