MVC 3 - 新区域 - 404 错误 - 未找到资源 - 已尝试路由调试器

2024-02-11

我有一个小型 MVC 3 应用程序 - 一个演示场地。 我有一个区域并且运行良好。

我刚刚添加了另一个区域,希望启动应用程序并且它可以工作 - 但不,404 - 找不到资源。

AreaRegistration 中的地图路线是默认的(就像我创建的第一个区域一样)。

public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Postcard_default",
            "Postcard/{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional }
        );
    }

我尝试在其中添加特定的控制器,但什么也没有。

所以我下载了 Phil Haack 的 RouteDebugger,输入时就找到了我的路线http://服务器/明信片/创建 http://server/Postcard/Create(这也是我想要达到的目标)

区域结构

我的控制器

    public class CreateController : Controller
{
    private ILogger Logger { get; set; }
    private ICardSender Emailer { get; set; }
    private IOCCardRepository CardRepository { get; set; }

    public CreateController(ILogger logger, ICardSender cardSender, IOCCardRepository repository)
    {
        this.Logger = logger;
        this.Emailer = cardSender;
        this.CardRepository = repository;
    }


    //
    // GET: /Postcard/Create/

    public ActionResult Index()
    {
        var model = new OCPostcardModel().Create();

        return View(model);
    }

现在:我已经删除了整个区域,再次尝试它不起作用。所以我在路线中添加了特定控制器(在 AreaRegistration 文件内)

context.MapRoute(
            "Postcard_default",
            "Postcard/{controller}/{action}/{id}",
            new { controller = "Create", action = "Index", id = UrlParameter.Optional }
        );

它的工作...我不知道为什么当我以前这样做时它不起作用,但现在可以了。

但仍然很好奇,因为我在我看过的任何演示中都没有看到任何人将此控制器添加到路线中 - 而且我在其他区域中还没有得到它?


当我将控制器移动到区域但忘记更新命名空间时,我遇到了这个问题。控制器名称的范围为区域的命名空间。因此“Area”中的“Some”将映射到App.Areas.Area.Controllers.SomeController,而该控制器并不存在。

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

MVC 3 - 新区域 - 404 错误 - 未找到资源 - 已尝试路由调试器 的相关文章

随机推荐