【发布时间】:2018-09-16 13:24:22
【问题描述】:
我的 ASP.NET 核心应用程序中有一个简单的控制器。想法是控制器被称为CreditData,例如,我的端点可以是/api/creditdata/,然后它应该具有默认的预期API方法。
我有两种我想要的方法:
-
/api/creditdata它应该有一个查询,例如/api/creditdata?query=text1,text2 -
/api/creditdata/value/api/creditdata/text1等查询应该在哪里工作
我尝试过如下设置:
[Route("api/[controller]")]
public class CreditDataController : Controller
{
private CreditDataService _creditDataService;
public CreditDataController()
{
_creditDataService = new CreditDataService();
}
// GET: api/CreditData?query=text1,text2
[HttpGet("{query}", Name = "Get")]
public List<CreditData> Get([FromQuery] string query)
{
// code
}
// GET: api/CreditData/GetByRegistration/33514322
[HttpGet("{query}", Name= "GetByRegistration")]
public CreditData GetByRegistration(string query)
{
// code
}
}
我有一个相当标准的Startup.cs 文件:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
{
HotModuleReplacement = true,
ReactHotModuleReplacement = true
});
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapSpaFallbackRoute(
name: "spa-fallback",
defaults: new { controller = "Home", action = "Index" });
});
}
但两者都没有按我想要的方式工作。我习惯了 ASP.NET MVC 4/5 的方式,但这里的逻辑似乎不同。
如何设置正确的网址?
【问题讨论】:
-
你不能有两个具有相同路由的操作。你也不能在 ASP.NET MVC 中做到这一点,所以不确定你在说什么。
标签: c# asp.net asp.net-core asp.net-core-mvc asp.net-core-2.0