你好我有弹出窗口的js文件。我已经在asp.net中使用但是它不在asp.net mvc中工作可以有人告诉我如何在mvc中使用这段代码
<script type="text/JavaScript">
function openUserSavedListDetailsPopUp(id) {
dhtmlmodal.open('UserInfo', 'iframe',
'UserSavedListDetails.aspx?listId=' + id,
'', 'width=710px,height=150px,center=1,resize=0,scrolling=0')
}
</script>
页面上的:
<a href="#" onclick='openUserSavedListDetailsPopUp(<%# DataBinder.Eval(Container.DataItem, "OrderId")%>)' > hello </a>
提前谢谢
答案 0 :(得分:0)
(可能)在您的MVC应用程序中无效的语句是对<%# DataBinder.Eval(...) %>
的调用。在MVC中,我假设你有一个for循环或者在模型上迭代的东西?也许这样的事情?*
<% foreach(var item in Model)
{ %>
<a href="#" onclick='openUserSavedListDetailsPopUp(<%: item.OrderId %>)>hello</a>
<% } %>
我还建议使用某种类型的javascript库,例如jQuery,来连接onclick事件,而不是使用javascript内联。对于这个特殊情况,jQuery可能不会给你的应用程序增加太多的价值(除了你的代码可能更干净),但它确实有助于从ajax调用到DOM操作和动画。
最后,对于不支持(或已禁用)javascript的浏览器,您应该有一个回退。简单的方法是更改您的链接:
<a href="urltothepopupcontentpage.html?id=<%: item.OrderId %>" onclick='openUserSavedListDetailsPopup(<%: item.OrderId %>); return false'>hello</a>
对return false
的调用将确保如果您的脚本可以运行,它将停止默认操作(在链接之后)。
*)注意:使用<%: ... %>
而不是<%= Html.Encode(...) %>
要求您使用ASP.NET 4.如果您运行的是.NET 3.5,则照常使用=
符号。< / p>