什么是使用html.action方法的htmlattributes

时间:2013-01-03 08:59:08

标签: asp.net-mvc html.actionlink

我是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方法,因为我发现上述链接都给出了相同的结果。

3 个答案:

答案 0 :(得分:1)

准确地说,您的操作链接正在呈现如下内容:

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

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

它们之间的区别是第一个有一个css类设置为h1样式类(不是标记)转到home控制器上的display action方法,将1作为id参数传递给url 。第二个是进入显示动作方法(如果它在家庭控制器的视图中它将转到家庭控制器的显示动作方法)并且它没有设置任何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类,可以通过此参数添加此属性,例如reltitletabindex,javascript事件,例如{{1等等。

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

null

如果是以下签名方法:

@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
)

答案 1 :(得分:0)

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

Use CSS on Html.ActionLink

ActionLink htmlAttributes

MVC HTML Helpers

希望这些对您有用。

答案 2 :(得分:0)

您分配给链接的班级h1正被浏览器的默认样式表覆盖。 (如果您想了解详细信息,请阅读css specificity。)

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

a.h1{color:Red;}

(注意定义前面的a

现在链接中的文字:

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

将是红色的。