我仍然没有得到Html.Actionasp.net mvc 的主要目的 .Html.Partial每次我需要加载局部视图或想要在视图中拆分一些代码来清理它时我一直在使用.
哪里Html.Action适合所有这一切(例如,你会在哪里要使用Html.Action和不使用Html.Partial)?
编辑
答案似乎是使用Html.Action动态数据.我没有得到这个,因为你也可以使用动态数据的部分视图.
例如,如果我网站上的用户编辑了一行.对方法进行ajax调用,然后从db中获取该行.然后,我返回一个表格的parital视图,其中包含所有数据,可以进行编辑.如果发生错误,那么我使用错误方法返回json结果,我的javascript使用它并提醒用户.
如果一切正常,则将渲染的html放入jquery对话框并显示给用户.
是因为你可以使用让人们使用Action的"ChildActionOnlyAttribute"吗?
Nic*_*cht 12
Ankur有正确的想法,但我发现你可以真正进一步简化这个概念.
对我而言,归结为什么与如何
如果你知道什么,你想渲染,但并不怎么很可能你会使用部分让它决定如何呈现的信息.例如,您的视图模型可能是发票.您的发票视图模型可能已包含有关发票本身的所有信息,包括发票上可能包含的可用行项目.部分可能是订单项的不错选择,因此它是自包含的.您已经有了行项目详细信息(什么),但是部分将处理它的呈现方式(如何)
另一方面,您的发票视图模型可能包含客户ID,但没有实际的客户详细信息.在这里,你没有什么,所以你在客户ID传递到行动,并会得到什么,它需要的数据和将其传递给视图渲染怎么觉得适合.
总而言之,如果您已经拥有了想要使用的所有数据,只需坚持使用Partial,但如果您缺少需要获取的信息,则Action会更好.
如果部分视图包含通过Ajax(或其他技术)检索自己的数据的能力,那么边缘变得非常模糊.在这种情况下,您可以在我的示例中创建客户详细信息部分,即Partial,并在客户端获得响应后使用Ajax检索所需的数据.但是如果这种事情对你的实现有意义的话,这更取决于你.
附录: 值得注意的是,如果您决定尝试使用ASP.NET MVC Core,则不再提供ChildActions.在这种情况下,您的选择将仅限于部分视图,ajax或新引入的组件功能.最后一个类似于ChildActions,但它们的实现方式略有不同.
| 归档时间: |
|
| 查看次数: |
8579 次 |
| 最近记录: |