c# – 什么时候使用Html.Action通过Html.Partial

前端之家收集整理的这篇文章主要介绍了c# – 什么时候使用Html.Action通过Html.Partial前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我仍然没有得到html.Action的主要目的在asp.net mvc.我一直在使用 Html.Partial,每次我需要加载部分视图或想要分割一些视图中的代码来清理它.

Html.Action在哪里适合所有这些(例如,您希望使用Html.Action并且不使用Html.Partial)?

编辑

答案似乎是使用Html.Action的动态数据.我没有得到这个,因为你也可以使用动态数据的部分视图.

例如,如果我的网站上的用户编辑了一行.一个ajax调用是一个方法,我从数据库抓住那一行.然后我返回一个表格的对齐视图,其中有所有数据准备好进行编辑.如果发生错误,那么我返回一个使用错误方法的json结果,我的javascript消耗它并提醒用户.

如果一切都很好,那么渲染的html将被放入一个jQuery对话框中并显示用户.

是因为您可以使用“ChildActionOnlyAttribute”,使人们使用Action吗?

解决方法

安库尔有正确的想法,但我发现你可以进一步简化这个概念.

对我来说,归结于什么与如何

如果你知道你想要渲染什么,但不知道它可能如何,那么你将使用partial来确定如何渲染信息.
例如,您的视图模型可能是发票.您的发票视图模型可能已经具有您需要的所有有关发票本身的信息,包括发票上可能列出的订单项.部分可能是订单项的一个不错的选择,因此它是自包含的.你已经有了行项目的详细信息(什么),但是部分将会处理它如何呈现(如何)

另一方面,也许您的发票视图模型中有客户ID,但没有实际的客户详细信息.在这里你没有什么,所以你将客户ID传递给一个Action,它会得到它需要的数据,并将其传递给视图,以呈现如何合适.

所以总结如果你已经拥有了你想要处理的所有数据,只要坚持使用Partial,但是如果你缺少需要获取的信息,Action会更好.

当边界视图包含通过Ajax(或其他技术)检索自己的数据的能力时,边缘的真正模糊就是这样.在这种情况下,您可能可以在我的示例中部分使用“客户”详细信息部分,并使其获取需要的数据在客户端得到响应后使用Ajax.但是,如果这样的事情对于您的实现也是有意义的,那么更适用于您.

附录:
值得注意的是,如果您决定尝试使用ASP.NET MVC Core,则ChildActions不再可用.在这种情况下,您的选择将仅限于部分视图,ajax或新引入的Components功能.最后一个类似于ChildActions,但实现方式略有不同.

猜你在找的C#相关文章