在我的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」路徑 –