【发布时间】:2017-10-04 20:19:28
【问题描述】:
我用一个控制器创建了一个 ASP.Net Core 2.0,没问题。 然后我又加了一个Controller,然后出现这个异常:
InvalidOperationException:出现以下错误 属性路由信息:
错误 1:同名 'Get' 的属性路由必须相同 模板:动作:'Patrimonio.Controllers.CategoriaController.Getcc (Patrimonio)' - 模板:'api/Categoria/{id}' 操作: 'Patrimonio.Controllers.PatrimonioController.Getac (Patrimonio)' - 模板:'api/Patrimonio/{id}' Microsoft.AspNetCore.Mvc.Internal.ControllerActionDescriptorBuilder.Build(ApplicationModel 申请)
第一个控制器有
// GET: api/Categoria
[Route("api/Categoria")]
public class CategoriaController : Controller
...
[HttpGet]
public IEnumerable<string> Geta()
{
return new string[] { "value1", "value2" };
}
第二个有
// GET: api/Patrimonio/5
[Route("api/Patrimonio")]
public class PatrimonioController : Controller
...
[HttpGet("{id}", Name = "Get")]
public string Getac(string id)
{
return "value" + id;
}
即使使用 Getac 和 Getcc,ASP.Net Core 仍会抱怨同名“Get”。
如何解决?
【问题讨论】:
-
有趣!这应该有效。你有其他一些你在其他地方使用的路由定义代码吗?
-
我试过 app.UseMvc(); //app.UseMvcWithDefaultRoute();但似乎没有解决这个问题的效果。
标签: asp.net-core