gpt4 book ai didi

asp.net - MVC - 如何最好地组织多个 View 中常用的下拉列表

转载 作者:行者123 更新时间:2023-12-03 22:06:47 31 4
gpt4 key购买 nike

我试图了解如何最好地组织几个 View 中使用的一些常见下拉列表(有些是级联的)

是不是最好创建
单个\Models\CommonQueries
然后为级联情况下使用的每个下拉菜单创建一个 web 服务
然后有一个 Controller ,其中包含每个下拉菜单的操作

这样我可以遵循 DRY 原则,而不是重复下拉逻辑,因为它们用于各种 View 。

非常感谢您阅读我的问题并抽出宝贵时间。
+ab

最佳答案

当您说您的下拉菜单在多个 View 中使用时,您是否仍将这些下拉菜单视为呈现它们的 View 的一部分?如果是这样,我认为使用自定义 HTML 帮助程序或部分 View (ascx) 是合适的。然后,就像您建议的那样,您可以使用域层中的通用服务填充下拉列表的数据。我认为这是一个非常合理的做法。

但是,如果您觉得下拉菜单与 View 有些外部/无关,那么您可能会发现使用 Html.RenderAction() 可以得到更清晰的结果。使用 Html.RenderAction(),您可以将 Action 方法的结果直接输出到任何其他 View 中。因此,您可以使用必要的 Action 方法创建 1 个 Controller 来填充这些下拉列表。例如,假设您有一个大致类似于以下内容的 View :

<div>
<div id="coreView1">
<!-- some view code here -->
</div>
</div>

<div id="commonDropdowns">
<% Html.RenderAction("Create", "Dropdown"); %>
</div>

其中 Create 是 DropdownController 中方法的名称。

例如:
public class DropdownController : Controller
{
public ViewResult Create()
{
// do stuff here to create the ViewResult of the common Dropdowns
}
}

备注 : 有些人不喜欢这种方法,因为它不符合典型的 MVC 关注点分离。但是,它可能非常适合某些情况。

希望其中一种方法可以提供帮助。

关于asp.net - MVC - 如何最好地组织多个 View 中常用的下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2025383/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com