ActionLink htmlAttributes

时间:2010-11-05 18:32:34

标签: asp.net-mvc asp.net-mvc-2 actionlink html.actionlink

WORKS

<a href="@Url.Action("edit", "markets", new { id = 1 })" 
            data-rel="dialog" data-transition="pop" data-icon="gear" class="ui-btn-right">Edit</a>

不工作 - 为什么?

@Html.ActionLink("Edit", "edit", "markets", new { id = 1 }, new {@class="ui-btn-right", data-icon="gear"})

您似乎无法将类似data-icon =“gear”的内容传递给htmlAttributes?

建议?

3 个答案:

答案 0 :(得分:187)

问题是您的匿名对象属性data-icon的名称无效。 C#属性的名称中不能包含破折号。有两种方法可以解决这个问题:

使用下划线而不是破折号(MVC会自动用发出的HTML中的破折号替换下划线):

@Html.ActionLink("Edit", "edit", "markets",
      new { id = 1 },
      new {@class="ui-btn-right", data_icon="gear"})

使用字典中的重载:

@Html.ActionLink("Edit", "edit", "markets",
      new { id = 1 },
      new Dictionary<string, object> { { "class", "ui-btn-right" }, { "data-icon", "gear" } });

答案 1 :(得分:24)

用下划线替换所需的连字符;它将自动呈现为连字符:

@Html.ActionLink("Edit", "edit", "markets",
    new { id = 1 },
    new {@class="ui-btn-right", data_icon="gear"})

变为:

<form action="markets/Edit/1" class="ui-btn-right" data-icon="gear" .../>

答案 2 :(得分:-5)

 $aColumns = array('ps_id', 'ssc_number', 'submission_type', 'seru', 'jootrh', 'kppb', 'cdc','csc', 'status', 'audit_status', 'comments', 'systemtime','username');

$aResultColumns = array('ps_id','ssc_number', 'submission_type', 'seru', 'jootrh', 'kppb', 'cdc',
    'csc', 'status', 'audit_status', 'comments', 'systemtime', 'username');