我正在尝试将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函数时是否有“陷阱”?
答案 0 :(得分:0)
您只能将简单类型(如字符串和整数)传递给javascript函数。如果要传递复杂对象,则需要对它们进行JSON编码。在你的情况下,你没有提到你的字典键的.NET类型,但如果它是字符串你需要把它放在引号之间,不要忘记对它进行HTML编码:
<a href="#" onclick="javascript:EditField('<%= Html.Encode(field.Key) %>')">