建立路线时发生错误

AJ

我尝试在.NET Core项目中添加区域,但始终会看到该错误:

RouteCreationException:创建名称为“(我的区域名称)”的路由时发生错误

我的代码是:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseBrowserLink();
        app.UseDeveloperExceptionPage();
        app.UseDatabaseErrorPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
    }

    app.UseStaticFiles();

    app.UseAuthentication();

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");

        routes.MapRoute(
            name: "custom",
            template: "{area:my area name}/{{controller=AdminHome}/{action=Index}/{id?}");
    });
}

在配置服务中,我添加以下代码:

public void ConfigureServices(IServiceCollection services)
{
    //...

    services.AddRouting(); 

    //...
}

在控制器中,我添加了:

[Area("My Area Name")]
public class AdminHomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
}

错误是:

RouteCreationException:创建名称为“ custom”和模板为“ {area:area name} / {{controller = Home} / {action = Index} / {id?}”的路由时发生错误。\ r \ n Microsoft.AspNetCore.Routing.RouteBase..ctor(字符串模板,字符串名称,IInlineConstraintResolver约束,解析器,RouteValueDictionary默认值,IDictionary约束,RouteValueDictionary dataTokens)\ r \ n ArgumentException:路由模板中的参数不完整。检查每个“ {”字符是否具有匹配的“}”字符。\ r \ n参数名称:routeTemplate

恩科西

如错误消息中所述,您{在路由模板中有一个流浪使其无效

template: "{area:my area name}/{{controller=AdminHome}/{action=Index}/{id?}");
                               ^
                               |
                             here

您还需要重新排列路由顺序,以避免路由冲突。

app.UseMvc(routes => {
    routes.MapRoute(
        name: "custom",
        template: "{area:my area name}/{controller=AdminHome}/{action=Index}/{id?}");

    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}");
});

ASP.NET Core中的参考区域

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章