首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.Net MVC视图体系结构

ASP.Net MVC视图体系结构
EN

Stack Overflow用户
提问于 2009-02-10 17:41:27
回答 4查看 1.9K关注 0票数 3

视图中的文件夹可以有子文件夹吗?如果是,控制器是如何到达它们的?例如..。我希望以下urls能够正常工作:

  • 管理/索引
  • 管理/档案/索引
  • 管理/配置文件/编辑/1
  • 管理/组/索引
  • 管理/组/编辑/1

那么,我会在管理中创建一个配置文件和组的文件夹作为子文件夹吗?

我尝试过这样做,并在Global文件中映射了一条路径,但这似乎不起作用。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-02-10 18:10:34

似乎您正在尝试创建管理面板,并将其他控制器相关操作放入管理控制器中。我认为这不是最有效的方法。你可以这样做:

如果需要,请使用RedirectToAction作为管理链接的返回。

  • 管理/索引
  • 管理/配置文件
  • 行政/组

把休息交给适当的控制器

  • 概况/指数
  • 概况/编辑/1
  • 组/索引
  • 组/编辑/1

还为创建/编辑/删除操作添加[Authorize(Roles = "Administrator")][AcceptVerbs(HttpVerbs.Post)]

票数 4
EN

Stack Overflow用户

发布于 2009-02-10 17:50:17

只需让返回操作像这样:

代码语言:javascript
复制
return View("Profile/Index");

这将使控制器找到“子视图”的技巧。为了将URL映射到正确的控制器,您可以使用路由系统,但忽略子视图,只需映射到正确的控制器并让控制器处理正确的视图。

票数 3
EN

Stack Overflow用户

发布于 2009-02-12 13:32:44

您可以创建自己的ViewEngine,并覆盖在何处查找文件,如下所示

代码语言:javascript
复制
public class MyViewEngine : WebFormViewEngine
{
    public MyViewEngine()
    {
        ViewLocationFormats = new[] { 
            "~/{0}.aspx",
            "~/{0}.ascx",
            "~/Views/{1}/{0}.aspx",
            "~/Views/{1}/{0}.ascx",
            "~/Views/Shared/{0}.aspx",
            "~/Views/Shared/{0}.ascx",
        };

        MasterLocationFormats = new[] {
            "~/{0}.master",
            "~/Shared/{0}.master",
            "~/Views/{1}/{0}.master",
            "~/Views/Shared/{0}.master",
        };
        PartialViewLocationFormats = ViewLocationFormats;

    }
}

然后在应用程序中开始添加

代码语言:javascript
复制
ViewEngines.Engines.Add(new MyViewEngine());
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/533386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档