【发布时间】:2012-07-14 08:34:08
【问题描述】:
作为 ASP.NET MVC 的新手,我已经看到它在代码重用和可维护性方面的一些好处。在询问previous question on routing 时,我对我的示例有另一个想法,但不确定如何实现它。
问题:如何在单独的页面中重复使用我的问题视图和控制器,以及为某些事情(例如要显示多少个问题)设置参数?
示例:在我的网络应用程序中说我想显示问题列表。这些问题按项目分组。因此,如果您访问 www.example.com/projectname/issues,您会看到该项目的问题列表,如果您访问 www.example.com/issues,您会看到所有项目的所有问题。我想做的是,如果您访问 www.example.com/projectname,您会看到有关该项目的一些信息,包括最近提交的 10 个问题。
如何重复使用此问题代码?我看到我有 Partial View 的选项,但是当我实现它时,我不确定如何将任何代码路由到它。在 Web 窗体中,您可以制作一个 ASP.net 控件,在后面的代码中设置一些参数,然后将此控件嵌入到其他地方。
到目前为止,我发现的一些示例要么缺乏完整的实现(不仅仅是在其他页面中添加一些 HTMl),看起来像是在 ASP.NET MVC 3 中似乎不适合我的旧 MVC 代码,并且缺乏允许我设置参数并展示这种类型的重用。
我的术语在这里可能并不完全正确。如果有的话,我正在尝试找到最好的(阅读 MVC)方法来复制 ASP.net Web Forms User Controls 之类的东西。例如,在“主”问题列表以及问题“小部件”上重复使用我的“问题”代码(HTML 和 C#)
【问题讨论】:
-
你可以用你的路线变魔术。我书中的第一步是为 {project}/{controller}/{action} 注册一个路由并创建一个路由约束来验证“项目”是否存在,无论是 ID 还是字符串。从那里我将创建一个基本控制器并使用 Initalize 事件从路由值中读取数据并填充项目。从那里您可以读取操作中的属性,以将项目(ID 或名称)传递给您用来过滤问题的对象。
-
我的困惑在于如何重用这个问题代码。我已经有类似的东西用于路由以缩小问题范围。现在更重要的是如何在项目页面上显示更小的问题列表。
-
我相信您正在寻找 PartialView
标签: c# asp.net-mvc asp.net-mvc-3