我正在寻找在ASP.NET MVC中实现模态对话框的最标准方法。
我想要做的一个例子就是当我从“列表”页面中选择一个项目时,我希望“详细信息”页面是列表上的弹出窗口而不是新页面。我不是在寻找黑客。我希望它是一个遵循ASP.NET MVC模式的解决方案。我也不喜欢不使用jQuery和ASP.NET Ajax(没有插件,除非它正在成为最佳实践)。
答案 0 :(得分:37)
jQuery UI库有一个对话框小部件,我用它来做这样的事情。虽然它是一个插件,IMO,但最佳做法是不要滚动你自己的对话框小部件。
答案 1 :(得分:20)
Lunchy的对话建议很好。只需向控制器操作发出一个ajax请求,并让操作返回您想要显示的内容,例如带有一些格式化html的局部视图。然后,将该html放入对话框或计划显示的任何内容中,并显示它。
答案 2 :(得分:6)
与MVC密切相关的一件事是RESTful网址。在这种情况下,处理这种情况的“标准”方式是让细节通过它自己的RESTful(和可收藏的)URL拉出一个新页面,而不是在页面上飞行对话框。您当然可以在列表的上下文中执行“详细信息预览”对话框,但如果您要与详细信息进行交互,我会考虑执行完整请求并在其自己的页面上获取详细信息。