ASP.NET MVC 2:查看子文件夹?

2024-03-07

在我看来,当我使用视图和控制器时,控制器仅处理各自文件夹的第一级。

/Controllers/MembersController
/Views/Members/

控制器应该如何处理子文件夹?

/Views/Members/Business

控制器isn't。如果您想要一个页面url /Views/Members/Business/ThePage,你可以用以下方法解决这个问题路线定义在您的 global.asax.cs 中。如果您需要将视图放入子文件夹中进行组织,您应该考虑拆分控制器。


Update回应你的评论。

简而言之:是的,路由定义负责选择哪个控制器应该处理您的请求。

似乎可以对 MVC 框架的设计和使用方式进行更详细的演练。我将保持这个非常基本的内容,并跳过有关框架内部工作的所有内容。 (这会让一些高级读者认为我说的话完全错误。请耐心等待 - 我只是故意马虎......)这里......

  1. 当请求从浏览器提交到 Web 服务器时,MVC 框架会转到路由定义以查看应将请求发送到何处。它按照您定义的顺序查看它们,从顶部开始,因此如果有多个匹配项,则只有第一个匹配项相关。 (因此,您希望将非常通用的路线(例如默认路线)保留在底部。)

  2. 当框架确定路由匹配时,它会查找 url 应路由到的控制器和操作。它使用 url 中的数据填充所有操作参数,并调用操作方法。

  3. 控制器上的操作方法现在负责成为“网络中心的蜘蛛”,它负责为响应提供所需的一切。这可能包括查询模型中的数据、调用各种库方法进行计算或几乎任何其他内容。控制器方法的最后一步是确定应该返回什么响应 - 在大多数基本情况下,响应应该是一个视图,返回它的代码是return View();.

  4. 视图(或您返回的任何其他结果)可能从控制器获取一些数据,然后负责正确渲染这些数据。当视图完成其工作后,框架将其返回给客户端。

正如您所看到的,关于应该调用什么控制器操作的决定(步骤 1 和 2)比关于返回结果应该是什么的决定(步骤 3 结束)要早得多,而且两者甚至不一定彼此相关。

为了在您的应用程序中反映这一点,您希望控制器和视图有一个与可用控制器及其操作方法相对应的文件夹和文件结构(至少是那些可以返回ViewResult),以及反映您希望用户使用哪些 url 来访问这些控制器操作的路由集合。通过定义比默认路由更多的路由,您可以获得相当多种 url 结构,而无需更改控制器/操作方法/视图结构。


如果所有这些看起来仍然像是一个决策迷宫,那么可能适合去http://www.asp.net/mvc/ http://www.asp.net/mvc/并观看一些学习视频或阅读一些教程。那里有一些非常好的视频和文本,介绍了该框架如何工作以及如何使用它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET MVC 2:查看子文件夹? 的相关文章

  • 通用类型的 ASP.NET MVC 显示模板

    我正在尝试使用模型 ListModel 作为通用列表模型 我想在页面输入 Html DisplayForModel 但是 MVC 无法正确找到模板文件 ListModel cshtml 对于通用模型来说 它的工作方式必须有所不同 我应该如何
  • ASP.NET MVC 2:查看子文件夹?

    在我看来 当我使用视图和控制器时 控制器仅处理各自文件夹的第一级 Controllers MembersController Views Members 控制器应该如何处理子文件夹 Views Members Business 控制器isn
  • 特定便携式区域的ControllerFactory

    我的主要 ASP NET MVC 复合应用程序使用全局 Unity 容器来注册类型 该应用程序将控制器工厂设置为使用此全局容器 我想重构这一点 以便我的每个可移植区域都利用它自己的子 Unity 容器 以便不同的区域可以以不同的方式实现接口
  • MVC后退按钮问题

    我有一个在单击后退按钮时需要执行的操作方法 我之前通过在操作方法 Response Cache SetCacheability HttpCacheability NoCache 中禁用缓存来完成此操作 这对于不同的操作方法不起作用 出于某种
  • ASP.NET MVC2 LINQ - 存储库模式,分页代码应该放在哪里?

    我正在努力添加用于分页的 HtmlHelper 但从性能和可维护性的角度来看 我不确定将分页代码的某些部分放在正确和 或最有益的位置 我不确定 Linq to SQL 数据操作的 Skip Take 和 Count 部分是否应该位于存储库或
  • 在 Accordion menu.js 文件中放置图标而不是“+”或“-”

    我正在制作手风琴菜单 我刚刚找到这个链接http jsfiddle net zM5Vj http jsfiddle net zM5Vj 和我做的手风琴菜单几乎相似 代码中 有 if this text this text else acco
  • ASP.NET Mvc - 可为空参数和逗号作为分隔符

    我应该如何在 global asax 中定义路由才能使用可为空的参数和逗号作为分隔符 我正在尝试为我的搜索用户页面实施路由规则 例如 Controller Action name page status Global asax 的完整条目
  • 如何使用 jquery 禁用列表框中的多重选择?或者JavaScript?

    我的页面中有一个列表框 td 我需要禁止从列表框中选择多个项目吗 我正在做一些事情 比如选择一个项目 然后单击 删除 按钮 我的页面会从列表框中删除一项 但是如果我选择多个项目 则会抛出一条错误消息 任何人都可以帮我解决如何停用或禁用列表框
  • 将 MVC 2 ASPX 转换为 MVC 4 Razor 视图引擎

    我目前正在使用 Visual Studio 2010 和视图引擎开发 MVC 2ASPX一种项目 所以我决定使用带有 MVC 4 和视图引擎的 Visual studio 2012Razor 那么我可以完成上述任务吗 如果可以的话怎么办 我
  • 无法在 IIS 7.5 上运行 ASP.NET MVC 2 Web 应用程序

    我尝试在 Windows 7 上的 IIS 下运行 ASP NET MVC 2 Web 应用程序 但收到 403 14 错误 以下是重现步骤 打开 Visual Studio 2010 创建一个名为 MvcApplication1 的新 A
  • 是否应该尝试防范 MVC 视图中的空引用异常/索引越界异常?

    我想发表评论这个问题的 https stackoverflow com questions 1005819 can we unit test view v of mvc接受的答案 现在视图不是已经放弃了后面的代码了吗 那么你要测试什么 指出
  • “无法开始调试”-VS2010 ASP.NET MVC 2

    我只能使用 VS2010 和 ASP NET MVC2 启动一次调试会话 当我结束第一个会话并尝试启动另一个会话时 我可以看到 无法开始调试 没有其他消息 我使用 Visual Studio Development Server 而不是 I
  • 在asp.net MVC中不使用LabelFor Helper获取DisplayName属性

    检索模型中项目的显示名称属性的最佳方法是什么 我看到很多人使用 LabelFor 助手来处理所有事情 但如果我只想列出数据 则标签不合适 如果我只想将其打印出来 比如说一个段落 是否有一种简单的方法可以获取名称属性 p p p 显然 为了避
  • C# Asp.net Membership.GetAllUsers 通过电子邮件订购

    我正在使用 Membership GetAllUsers 来获取我的用户列表 我希望返回的列表按电子邮件地址排序 因为我需要标记一些具有重复电子邮件的帐户 Membership GetAllUsers 似乎默认按用户名排序 有办法改变这种行
  • asp.net-mvc 中模型绑定双精度的 CultureInfo 问题(2)

    在我的 Jquery 脚本中 我使用浏览器的 CultureInfo en UK 发布了两个双打 该浏览器使用 作为分数分隔符 我的 MVC 应用程序在区域设置为 nl BE 的服务器上运行 使用 作为分数分隔符 AcceptVerbs H
  • ASP.NET MVC 2 - 使用 UpdateModel 和 LINQ to Entities (.NET 3.5) 时“无法更新类型‘XYZ’的模型”

    我有一个使用 LINQ to Entities 设置的模型 并且代码可以按预期添加到数据库中 但是 当我使用 NET 3 5 时 我无法让 UpdateModel 工作 HttpPost public ActionResult Edit S
  • 如何对我的自定义验证属性进行单元测试

    我有一个自定义的 asp net mvc 类验证属性 我的问题是如何对其进行单元测试 测试类是否具有该属性是一回事 但这实际上并不能测试其中的逻辑 这就是我想测试的 Serializable EligabilityStudentDebtsA
  • 如何在 ASP.NET MVC 中使用 Html.Action() 将参数传递给 Action?

    我一直在使用Html Action ActionName ControllerName 跨控制器调用子操作 而无需在 Views Shared 中拥有视图 这对于显示会话或 cookie 信息等内容非常有效 我不只是访问 cookie 而是
  • MVC2 中隐藏字段的替代方案

    我有一个 viewModel 其中包含一个在传递给部分视图之前填充的字符串 我需要能够在发布表单时取回数据 目前我已经创建了一个隐藏字段并将数据绑定到它 然后 当回发时 我可以从表单集合中获取数据 这并不完全是我想要的 我希望数据完全隐藏在
  • 为什么 Ajax.BeginForm 在 Chrome 中不起作用?

    我正在使用 c NET MVC2 并尝试创建一个 ajax 表单来调用删除数据库记录 RemoveRelation 的方法 删除记录的过程正在按预期进行 删除记录后 表单应调用一个 JavaScript 函数 从视觉效果中删除该记录 Rem

随机推荐