Web API 2 Scaffolded控制器的路由与空控制器的路由

时间:2016-06-15 12:43:59

标签: asp.net asp.net-web-api asp.net-web-api2

如您所知,Visual Studio为MVC和Web API控制器提供了脚手架。就我而言,我正在使用Entity Framework和Web API 2.

当我使用Entity Framework添加带有操作的新web api 2控制器时,Visual Studio几乎创建了一个包含5个端点的控制器。

其中一个端点是从数据库中检索单个记录。

以下是一个示例:

Error
Traceback (most recent call last):
  File "/home/user/Documents/venvs/migration/local/lib/python2.7/site-packages/unittest2/case.py", line 67, in testPartExecutor
yield
  File "/home/user/Documents/venvs/migration/local/lib/python2.7/site-packages/unittest2/case.py", line 625, in run
testMethod()
  File "/home/user/Documents/venvs/migration/local/lib/python2.7/site-packages/mock/mock.py", line 1297, in patched
arg = patching.__enter__()
  File "/home/user/Documents/venvs/migration/local/lib/python2.7/site-packages/mock/mock.py", line 1353, in __enter__
self.target = self.getter()
  File "/home/user/Documents/venvs/migration/local/lib/python2.7/site-packages/mock/mock.py", line 1523, in <lambda>
getter = lambda: _importer(target)
  File "/home/user/Documents/venvs/migration/local/lib/python2.7/site-packages/mock/mock.py", line 1210, in _importer
thing = _dot_lookup(thing, comp, import_path)
  File "/home/user/Documents/venvs/migration/local/lib/python2.7/site-packages/mock/mock.py", line 1200, in _dot_lookup
return getattr(thing, comp)
AttributeError: 'module' object has no attribute 'utils'

如果我把它称为api / Courses / 5,上面的控制器工作正常,但如果我把它称为api / Courses,它也可以正常工作吗?id = 5。

我的问题是,如果我添加一个空的Web API 2控制器,手动定义这些方法以及其他一些端点,我可以像第一次调用或第二次调用一样调用端点,但不能同时调用两者。

有没有办法设置一个可以接受这两个选项的端点路由?

PS:我知道如何为上述每个选项单独设置路由。我的问题是,是否可以为两者进行设置。

0 个答案:

没有答案