Ste*_*ing 3 c# asp.net-mvc .net-core asp.net-core
我创建了一个.Net Core Web API程序。我想为其添加一个视图。在同一项目下,我添加一个“Views”文件夹。在我路由所有 API 请求的 HomeController 中,我创建了以下内容:
[HttpGet("view")]
public IActionResult Index()
{
return View();
}
Run Code Online (Sandbox Code Playgroud)
在我的 Views 文件夹中,我创建了一个文件夹“Home”并向其中添加了“Index.cshtml”。
当我启动 API 并导航到“../view”时,我到达了该return View();行,但随后它返回了 500 内部服务器错误。
这就是我不喜欢 MVC 约定的“自动神奇”方法的原因。如果约定不起作用,我不知道在哪里将视图链接到控制器。
更新,这可能应该是我的第一个行动方针。我在Controllers文件夹中添加了一个新类,并在VS2015中使用了MVC控制器模板。然后我添加了一个视图来匹配,但它仍然无法自动工作。
因此,为了清楚起见,我的项目是:ASP.NET Core Web Application(.NET Core)使用Web API模板。我有一个“作业”控制器类,在开始时添加为“值”,并进行了重命名。然后我添加了一个MVC Controller Class名为“HomeController”的唯一方法是“Index”。我添加了一个名为“Views”的文件夹和一个名为“Home”的子文件夹,并添加了一个MVC View Page名为“Index.cshtml”的文件夹。
我尝试使用“return View();” 在 Index 方法中,不起作用。然后我尝试在 Index 方法上方添加 [Route("Home/Index")] 。不管怎样,URL 都会让我到达“return View();”处的断点。但它永远不会返回视图。
注意:想要在 Web API 项目中返回视图有点奇怪,Web API 项目应该返回一些数据结构,例如使用return new JsonResult(your_json_here)的 json。
注2:您需要Microsoft.AspNetCore.Mvc框架(与Web API模板一起安装)
无论如何,您可以通过不同的方式在 ASP.NET Core 应用程序中配置路由:
配置方法中的路由配置示例:
app.UseMvc(routes =>
{
// You can add all the routes you need here
// And the default route :
routes.MapRoute(
name: "default_route",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Home", action = "Index" }
);
});
Run Code Online (Sandbox Code Playgroud)
如果您使用属性配置路由,请不要忘记控制器的属性:
路线/index的示例:
[Route("")]
public class HomeController : Controller
{
[HttpGet]
[Route("[action]")]
public IActionResult Index()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
路线/home/index的示例:
[Route("[controller]")]
public class HomeController : Controller
{
[HttpGet]
[Route("[action]")]
public IActionResult Index()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
路线/iputwhatiwant/actionnameiwant的示例:
[Route("iputwhatiwant")]
public class HomeController : Controller
{
[HttpGet]
[Route("actionnameiwant")]
public IActionResult Index()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
我的 .NET Core Web API 项目屏幕返回视图:

有关更多信息,官方文档有详细记录:https://learn.microsoft.com/en-us/aspnet/core/fundamentals/routing
| 归档时间: |
|
| 查看次数: |
6185 次 |
| 最近记录: |