我是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
方法,因为我发现上述链接都给出了相同的结果。
答案 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参数是一个对象,它包含要为元素设置的HTML属性。例如,如果要在输出链接中添加css类,可以通过此参数添加此属性,例如rel
,title
,tabindex
,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上会有大量文章,例如:
希望这些对您有用。
答案 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"}) %>
将是红色的。