我已经在我的MVC3项目中添加了一个新区域,并且试图从_Layout页面链接到新区域。我添加了一个名为“Admin”的区域,该区域具有一个 Controller “Meets”。

我使用了Visual Studio设计器来添加区域,以便它具有正确的区域注册类等,并且global.asax文件正在注册所有区域。

但是,当我在根目录的页面中使用以下2个操作链接时,遇到了一些问题:

@Html.ActionLink("Admin", "Index", "Meets", new { area = "Admin" }, null)
@Html.ActionLink("Admin", "Index", "Meets", new { area = "" }, null)

当单击两个链接时,我将转到“管理”区域中的“ session ” Controller ,然后该应用程序继续引发错误,指出找不到“索引”页面(即使“索引”页面位于“区域” subview 的“ View ”文件夹中,目录。

第一个链接的href如下所示:
http://localhost/BCC/Meets?area=Admin
第二个链接的href如下所示:
http://localhost/BCC/Meets
另外,如果我点击了我希望创建的链接:
http://localhost/BCC/Admin/Meets
我只是得到一个资源找不到错误。一切都很困惑!我希望有人能帮帮忙...

最佳答案

确实很奇怪。这些步骤对我来说效果很好:

  • 使用默认的Visual Studio模板
  • 创建一个新的ASP.NET MVC 3应用程序
  • 右键单击项目
  • ,使用Visual Studio设计器添加一个名为Admin的区域。
  • ~/Areas/Admin/Controllers/MeetsController中添加新 Controller :
    public class MeetsController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
    }
    
  • 添加相应的 View ~/Areas/Admin/Views/Meets/Index.cshtml
  • 在布局(~/Views/Shared/_Layout.cshtml)中添加链接:
    @Html.ActionLink("Admin", "Index", "Meets", new { area = "Admin" }, null)
    @Html.ActionLink("Admin", "Index", "Meets", new { area = "" }, null)
    
  • 运行应用程序。

  • anchor 的渲染HTML:
    <a href="/Admin/Meets">Admin</a>
    <a href="/Meets">Admin</a>
    

    如预期的那样,第一个链接有效,而第二个则无效。

    那么您的设置有什么区别?

    08-16 05:54