使用jQuery对话框在ASP.NET MVC页面中显示许多隐藏的div。我应该使用部分视图吗?

我已经在我的第一个主要的ASP.NET MVC应用程序(加上大量的jQuery)上工作了一个月左右,我对此非常满意。我有一个看起来像这样的页面。 (实际数据改为保护无辜者。)
<div id="main"></div>
<div id="movies"></div>
<div id="actors"></div>
<div id="actor-ratings"></div>
<div id="ratings-comments"></div>
电影div包含可供选择的电影表。演员,演员评级和评级评论div都隐藏在这一点上。单击一个电影时,我有一个jQuery live()事件来获取点击,发布到Action,获取数据,然后是一个回调函数来获取数据并将其置于模态弹出窗口中。 (我想我的订单是正确的,请随时告诉我,如果我在任何地方做错了。) 由于演员,演员评级和评级评论都可能需要在一个页面中加载,我的控制器最终会有一个巨大的动作来加载所有数据。另外,评级 - 评论div可能会关闭演员评级模式并以一种新的模式打开自己。最重要的是,我想实现jQuery Address插件,以允许后退按钮返回到先前打开的模态。 得到一种复杂很快的东西。我应该为每个div使用部分视图吗?我是否应该为每个控制器配备一个控制器?或者每个局部视图/ div的控制器?部分div似乎是要走的路,但我想在我跳入并分解代码之前我正在寻找一些指导。任何意见,将不胜感激。 编辑:另外,我的演员评级部分视图可能需要演员局部视图中的一些数据。我是否只在actor数据中加载了ActorRatings控制器动作? (我将强类型视图模型传递给视图。)     
已邀请:
如果它始终将应用程序的逻辑上不同的部分分开,那么如何分解代码并不一定太重要。 对于由大量与之密切相关的部分视图驱动的页面,我很想将动作方法放在单个控制器中。但是,如果您希望创建一个非常丰富的AJAX驱动页面,那么您可能会将不同的功能拆分为单独的控制器。 从操作方法返回局部视图可能是最易维护和最灵活的解决方案,但返回JSON将使用最少的带宽。对于你所描述的内容,我很想回归部分观点。 没有更多细节,很难评论Actors和ActorRatings之间的共享数据。由于调用了ActorRatings方法,Actors动作方法不能获得它需要的所有细节或更新吗?     
就像你描述的那样使用单独的动作返回局部视图,我需要处理弹出窗口的动态内容。这些操作可以映射到单个控制器,也可以根据内容在不同控制器之间展开 - 这更多地取决于您在此视图旁边的其他内容。部分视图允许您使用一个实际的jquery对话框,我只是加载我当前感兴趣的表单。然后您可以使用jQuery serialize()来准备模型,并发送到保存操作,如果需要完成异步。关于演员评级部分:有两种方式 - 将数据传递给控制器​​动作或使用js修改您根据自己的喜好接收的局部视图。如果修改比seroius更多或需要比视图上更多的数据,则应使用第一种方法。此外,如果有一些规则要遵循 - 你不想在js中放太多。第二种方法是正常的,只需要对部分进行微调,而你不想发送往返数据 - 但这可能会让人头疼。     

要回复问题请先登录注册