我试图了解如何最好地组织一些 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/