MVC5中的默认控制器和默认操作

比勒·肖瓦迪(Bilel Chaouadi)

我有一个用MVC 5开发的网站,我使用路由属性进行路由。我已使用以下代码设置 默认控制器每个控制器 默认操作

 public class CompanyController : MainController
 {
  [Route("~/", Name = "default")]
  [Route("Company/Index")]
  public ActionResult Index(string filter = null)
   {
     //My code here
   }

  [Route("Company/Edit")]
  public ActionResult Edit(int id)
  {
    //My code here
  }
 }

我还有一个默认动作的控制器:

[RoutePrefix("Analyst")]
[Route("{action=Index}")]
  public class AnalystController : MainController
 {
    [Route("Analyst/Index")]
    public ActionResult Index(string filter = null)
    {
      //My code here
    }

   [Route("Analyst/Edit")]
   public ActionResult Edit(int id)
   {
    //My code here
   }
 }

默认控制器运行完美,但是当我导航到分析器控制器而不指定操作名称时,出现以下错误:

Multiple controller types were found that match the URL. This can happen if attribute routes on multiple controllers match the requested URL.

The request has found the following matching controller types: 
SurveyWebsite.Controllers.AnalystController
SurveyWebsite.Controllers.CompanyController

如何正确导航到http:// localhost:61534 / analyst并达到默认操作(索引)?该操作也应仍可通过http:// localhost:61534 / analyst / Index访问。感谢您的帮助。

y州

输入一个空字符串作为索引操作的路由值,以便它可用于Analyst(这是您的控制器路由前缀)。您可以使用第二个Route属性进行修饰,使其与Analyst/Index将传递Index到的URL一起使用。

[RoutePrefix("Analyst")]
public class AnalystController : MainController
{
    [Route("")]
    [Route("Index")]
    public ActionResult Index(string filter = null)
    {
      //My code here
    }

   [Route("Edit/{id}")]
   public ActionResult Edit(int id)
   {
    //My code here
   }
}

这两个工作/Analyst/Analyst/Index

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在ASP.NET MVC 4和MVC 5中设置默认控制器

如何从OwinContext中获得Asp.net MVC5控制器操作中的访问令牌

MVC5帐户控制器null参考异常

laravel 5在控制器中获取默认语言

MVC5控制器参数中的口音

默认控制器键

共享默认的MVC控制器

我可以覆盖ASP.Net Core MVC中单个控制器的默认操作

如何在ASP.NET Core API中更改默认控制器和操作?

在MVC5中的url中保留默认控制器名称

Asp.Net MVC中Web API的默认控制器操作

MVC控制器的默认操作

在MVC 5中如何在没有默认操作的情况下为控制器设置路由?

如何设置控制器的默认操作?

如何修改与控制器操作方法关联的ASP MVC默认视图名称?

MVC属性路由-带有GET和POST的默认控制器索引

cakephp更改控制器的默认操作(即从“索引”开始)

异步MVC5控制器和异步EF DataContext

从MVC5或Web API 2控制器操作返回生成的CSS

PhalconPHP设置默认控制器和默认操作

重定向到不匹配的控制器上的默认操作以及url中的操作

未从JSON AJAX发布中调用MVC5控制器操作

ASP.NET MVC仅对一个控制器缺少默认操作

将值从控制器传递到mvc5中的javascript中

MVC5的“通用”包装器-控制器?

MVC5 控制器未收到 JSON 对象

在 MVC5 中回发后无法获取控制器中按钮的值

路由如何与 asp.net mvc 中的默认控制器和操作一起使用

从控制器获取结果但 ajax 调用获取错误而不是在 MVC5 和 C# 中成功