好的,非常简单的问题。我想我需要输入一些转义字符,但我不太确定在哪里。
这是我试图调用的javascript函数:
function setData(associateValue, reviewDateValue) {
var associate = document.getElementById("Associate");
var reviewDate = document.getElementById("ReviewDate");
associate.value = associateValue;
reviewDate.value = reviewDateValue;
}
这是asp .net mvc行,我试图用一个调用上面函数的click事件创建一个单选按钮,并将模型中的数据作为javascript参数值传递。
<%= Html.RadioButton("Selected", item.Selected, new { onClick="setData('<%=item.Associate%>','<%=item.ReviewDate%>' )" } )%>
以上引发了一堆编译问题而无法正常工作。如下所示的调用会调用javascript,但不会从模型中获取数据。
<%= Html.RadioButton("Selected", item.Selected, new { onClick="setData('item.Associate','item.ReviewDate' )" } )%>
<%= Html.RadioButton("Selected", item.Selected, new { onClick="setData('item.Associate','item.ReviewDate' )" } )%>
思想?
解
<% String functionCall = String.Format("setData('{0}','{1}')", Html.Encode(item.Associate), Html.Encode(item.ReviewDate )) ; %>
<%= Html.RadioButton("Selected", item.Selected, new { onClick=functionCall } )%>
答案 0 :(得分:10)
您需要正确构建代表onclick事件处理程序的字符串:
onClick = String.Format("setData('{0}', '{1}')", item.Association, item.ReviewData)
答案 1 :(得分:1)
应该是这样的:
<%: Html.RadioButton("Selected", item.Selected, new { onClick="setData('" + Html.Encode(item.Associate) + "','" + Html.Encode(item.ReviewDate) + "' )" } )%>
如果它是MVC2,你应该更喜欢使用:而不是=来确保它是HTML编码的。