将字典键发送到JS函数

时间:2009-12-06 08:43:57

标签: asp.net javascript dictionary

我正在尝试将Dictonary键(这是一个字符串)发送到Javascript函数。

<%
    foreach (var field in Model.Fields)
    { %>
      <tr><td>
      <a href="#" onclick="javascript:EditField(<%= field.Key %>)">
      <%= Html.Encode(field.Value.Name) %></a>
      </td><tr>
<% } %>

但是,在Javascript函数中,我把它作为一个对象,它拥有我拥有的整个'FIELD'对象。我不认为它是一个字符串。

我的JS功能看起来像这样 -

function EditField(field) {
// blah blah

}

将Dictonary键发送到JS函数时是否有“陷阱”?

1 个答案:

答案 0 :(得分:0)

您只能将简单类型(如字符串和整数)传递给javascript函数。如果要传递复杂对象,则需要对它们进行JSON编码。在你的情况下,你没有提到你的字典键的.NET类型,但如果它是字符串你需要把它放在引号之间,不要忘记对它进行HTML编码:

<a href="#" onclick="javascript:EditField('<%= Html.Encode(field.Key) %>')">