区域内的行动

发布于 2024-10-12 18:31:15 字数 231 浏览 1 评论 0原文

我在区域内有一个母版页,在区域外有一个控制器。控制器称为“SecurityController”,我正在调用 <%= Url.Action("LogOut", "Security", new {area=""}) %>;正如我在一些帖子中看到的那样,但这并不映射到我的“根”控制器。 该链接是为 /AREANAME/SecurityController/ 生成的,这是错误的。

我做错了什么?

谢谢大家。

I have a masterpage inside a Area and a Controller outside the area. The controller's called "SecurityController" and i'm calling <%= Url.Action("LogOut", "Security", new {area=""}) %> as i saw in some posts but that doens't map to my "root" controllers.
The link is generated for /AREANAME/SecurityController/ witch's wrong.

What i'm doing wrong?

Thank U all.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

老娘不死你永远是小三 2024-10-19 18:31:15

我无法重现您所描述的行为。以下是我执行的步骤:

  1. 使用默认模板创建一个新的 ASP.NET MVC 2 项目
  2. 使用 Visual Studio 向导添加一个名为 AREANAME 的新区域
  3. ~/ 内添加一个 FooController Areas/AREANAME/Controller/FooController.cs

    公共类 FooController :控制器
    {
        公共 ActionResult Index()
        {
            返回视图();
        }
    }
    
  4. ~/Views/Shared/Site.Master 复制粘贴母版页~/Areas/AREANAME/Views/Shared/Site.Master
  5. 添加一个新的 Index 视图,对应于 Index 操作使用母版页的 FooController。将其保留为默认值。
  6. 在该区域的母版页内的某个位置添加以下内容(或在 FooController 的索引视图内,这并不重要):

    <%= Url.Action("Index", "Home", new { area = "" }) %>;
    
  7. 运行站点并导航到 /AREANAME/foo /索引
  8. 生成正确的 url:/

如果删除助手的 area="" 部分,则会生成以下 url:/AREANAME/Home

所以?

I was unable to reproduce the behavior you are describing. Here are the steps I did:

  1. Create a new ASP.NET MVC 2 project using the default template
  2. Add a new area called AREANAME using the Visual Studio Wizard
  3. Add a FooController inside ~/Areas/AREANAME/Controller/FooController.cs:

    public class FooController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
    }
    
  4. Copy-Paste the master page from ~/Views/Shared/Site.Master to ~/Areas/AREANAME/Views/Shared/Site.Master
  5. Add a new Index view corresponding to the Index action of the FooController using the master page. Leave it as default.
  6. Somewhere inside the master page of the area add the following (or inside the Index view of the FooController, it doesn't really matter):

    <%= Url.Action("Index", "Home", new { area = "" }) %>
    
  7. Run the site and navigate to /AREANAME/foo/index.
  8. The correct url is generated: /

If you remove the area="" part of the helper the following url is generated: /AREANAME/Home.

So?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文