如何在mvc控制器中应用多个Get方法。我有两种方法可以通过id获取数据,有没有办法配置它?我正在使用.net核心
此处路线配置:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
来自控制器的两种方法:
[HttpGet("{id}")]
public IEnumerable<Answer> GetAnswersByTestId(int id)
=> _userQuizRepository.GetTestByAnswerId(id);
[HttpGet("{id}")]
public IEnumerable<Test> GeTestById(int id) => _userQuizRepository.GetTestById(id);
在角色中我通过以下网址访问:
function myFunc(id) {
return $http.get('/api/mycontroller/' + id);
}
答案 0 :(得分:2)
想象一下,你将你儿子的两个名字都保留为“ Scott ”并且你想给一个斯科特(因为你更喜欢他)。你称之为“ Scott来到这里 ”,会发生什么?你认为正确的斯科特只会来吗?
简而言之,您不能拥有两种具有相同路由模式的方法。
我建议你创建两个更具可读性的独特路由定义。
[HttpGet("test/{id}/answers")]
public IEnumerable<Answer> GetAnswersByTestId(int id){}
[HttpGet("test/{id}")]
public IEnumerable<Test> GeTestById(int id) {}