在我的ASP.NET中的5个工作,我在一些统一的控制概念相混淆。请告诉我我做错了什么。统一MVC控制器路由在Asp.Net 5
在ASP.NET 5相同的控制器用于MVC和的WebAPI具有高于网络API控制器定义的路由属性的唯一的差异。我的想法是,“路线”属性仅用于定义路线。但是有一些发生在顶部的定义“路由”属性是指定一个控制器为Web Api控制器。
在Startup.cs,我有以下的路由配置。
app.UseMvc(routes => {
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapWebApiRoute(
"DefaultApi",
"api/{controller}/{id?}");
});
在家庭控制器,有接受的WebAPI get
请求“HTTPGET”的行动,但不能没有“路”属性被调用,但是对于网络API的路由已经在启动类中定义。
public class HomeController : Controller {
public IActionResult Index() {
return View();
}
//[Route("api/[controller]")]
[HttpGet]
public IEnumerable<string> Get() {
return new string[] { "value1", "value2" };
}
}
和价值控制器“关于”行动不能作为呼叫“/价值/约”将给出错误not found
访问。并且“/ api/values/about”将重定向到“获取”操作。
[Route("api/[controller]")]
public class ValuesController : Controller {
public IActionResult About() {
ViewData["Message"] = "Your application description page.";
return View();
}
// GET: api/values
[HttpGet]
public IEnumerable<string> Get() {
return new string[] { "value1", "value2" };
}
}
虽然我已经在startup.cs文件中指定了web api路径,但是我无法访问“/ api/home”路径。 我在做什么错?
对不起不存在的分歧,我无法找到你写什么的问题。请澄清一下吗? – Geerten
我的问题是,我已经在startup.cs文件中指定了web api路由,但是我不能访问“/ api/home”路径 –