更改默认操作不适用于ASP.NET Core 2

时间:2017-12-08 11:17:08

标签: c# asp.net-core asp.net-core-mvc asp.net-core-2.0

在最新的ASP.NET MVC CORE 2默认模板上,我试图通过修改控制器和操作来更改默认操作,如下所示。我希望看到登录页面为默认,但我有404 http错误。我做错了什么?

您可以在默认的ASP.NET CORE 2 MVC项目上验证此问题。

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

1 个答案:

答案 0 :(得分:6)

如果您查看AccountController课程,您会看到它使用Route属性进行装饰,如下所示:

[Route("[controller]/[action]")]
public class AccountController : Controller

但是,如果您查看HomeController类,您会看到装饰了这样的属性:

public class HomeController : Controller

由于AccountController正在使用Attribute routing,因此无法使用Conventional routing模板获取该CREATE TABLE metric_values ( dmm_id INT NOT NULL, dtt_id BIGINT NOT NULL, cus_id INT NOT NULL, nod_id INT NOT NULL, dca_id INT NULL, value DOUBLE NOT NULL ) ENGINE = InnoDB; CREATE INDEX metric_values_dmm_id_index ON metric_values (dmm_id); CREATE INDEX metric_values_dtt_index ON metric_values (dtt_id); CREATE INDEX metric_values_cus_id_index ON metric_values (cus_id); CREATE INDEX metric_values_nod_id_index ON metric_values (nod_id); CREATE INDEX metric_values_dca_id_index ON metric_values (dca_id); CREATE TABLE dim_metric ( dmm_id INT AUTO_INCREMENT PRIMARY KEY, met_id INT NOT NULL, name VARCHAR(45) NOT NULL, instance VARCHAR(45) NULL, active BIT DEFAULT b'0' NOT NULL ) ENGINE = InnoDB; CREATE INDEX dim_metric_dmm_id_met_id_index ON dim_metric (dmm_id, met_id); CREATE INDEX dim_metric_met_id_index ON dim_metric (met_id); CONTEXT: Some context, I'm trying to understand some strange performance behaviour happening in a data structure that I'm working on: CREATE TABLE metric_values ( dmm_id INT NOT NULL, dtt_id BIGINT NOT NULL, cus_id INT NOT NULL, nod_id INT NOT NULL, dca_id INT NULL, value DOUBLE NOT NULL ) ENGINE = InnoDB; CREATE INDEX metric_values_dmm_id_index ON metric_values (dmm_id); CREATE INDEX metric_values_dtt_index ON metric_values (dtt_id); CREATE INDEX metric_values_cus_id_index ON metric_values (cus_id); CREATE INDEX metric_values_nod_id_index ON metric_values (nod_id); CREATE INDEX metric_values_dca_id_index ON metric_values (dca_id); CREATE TABLE dim_metric ( dmm_id INT AUTO_INCREMENT PRIMARY KEY, met_id INT NOT NULL, name VARCHAR(45) NOT NULL, instance VARCHAR(45) NULL, active BIT DEFAULT b'0' NOT NULL ) ENGINE = InnoDB; CREATE INDEX dim_metric_dmm_id_met_id_index ON dim_metric (dmm_id, met_id); CREATE INDEX dim_metric_met_id_index ON dim_metric (met_id); docs解释了这种共同排他性:

  

通过传统路线无法达到定义属性路线的动作,反之亦然。