如何在asp.net mvc中调用弹出窗口?

时间:2010-05-18 06:07:24

标签: asp.net asp.net-mvc

你好我有弹出窗口的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>

提前谢谢

1 个答案:

答案 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>