MVC 一个控制器多个索引视图
MVC One controller many Index view
我搜索了很多主题,但找不到问题的答案。我正在使用 MVC 6。
我有以下结构:
> Controllers
> AccountController
> Views
> Account
Index.cshtml
> MyReviews
Index.cshtml
AccountController 看起来像:
//
// GET: /Account/Index
[AllowAnonymous] //temp
[HttpGet]
public IActionResult Index()
{
return View();
}
//
// GET: /Account/MyReviews/Index
[AllowAnonymous] //temp
[HttpGet]
[Route("/Account/MyReviews/")]
public IActionResult Index()
{
return View();
}
如果它有不同的名称并放置在单独的控制器中,它的工作正常:
public class MyReviewsController : Controller
{
//
// GET: /Account/MyReviews/Default
[AllowAnonymous]
[HttpGet]
[Route("/Account/MyReviews/")]
public IActionResult Default()
{
return View();
}
}
我想让 MyReviews 仅使用 AccountController:
http://my.domain/Account/MyReviews/
首先,如果你想在 1 个控制器中执行多个索引操作,你必须启用属性路由。要启用此功能,请将以下内容添加到 RouteConfig.cs
routes.MapMvcAttributeRoutes();
在此之后,将 Account
文件夹中的 MyReviews\Index.cshtml
重命名为 MyReviewsIndex.cshtml
(删除 MyReviews 文件夹)。所以它看起来像下面
> Controllers
> AccountController
> Views
> Account
Index.cshtml
MyReviewsIndex.cshtml
//
// GET: /Account/Index
[AllowAnonymous] //temp
[HttpGet]
public IActionResult Index()
{
return View();
}
//
// GET: /Account/MyReviews/Index
[AllowAnonymous] //temp
[HttpGet]
[Route("Account/MyReviews")]
public IActionResult MyReviewsIndex()
{
return View();
}
现在您可以通过以下方式访问 2 个操作:
http://localhost/account
http://localhost/account/myreviews
我搜索了很多主题,但找不到问题的答案。我正在使用 MVC 6。
我有以下结构:
> Controllers
> AccountController
> Views
> Account
Index.cshtml
> MyReviews
Index.cshtml
AccountController 看起来像:
//
// GET: /Account/Index
[AllowAnonymous] //temp
[HttpGet]
public IActionResult Index()
{
return View();
}
//
// GET: /Account/MyReviews/Index
[AllowAnonymous] //temp
[HttpGet]
[Route("/Account/MyReviews/")]
public IActionResult Index()
{
return View();
}
如果它有不同的名称并放置在单独的控制器中,它的工作正常:
public class MyReviewsController : Controller
{
//
// GET: /Account/MyReviews/Default
[AllowAnonymous]
[HttpGet]
[Route("/Account/MyReviews/")]
public IActionResult Default()
{
return View();
}
}
我想让 MyReviews 仅使用 AccountController:
http://my.domain/Account/MyReviews/
首先,如果你想在 1 个控制器中执行多个索引操作,你必须启用属性路由。要启用此功能,请将以下内容添加到 RouteConfig.cs
routes.MapMvcAttributeRoutes();
在此之后,将 Account
文件夹中的 MyReviews\Index.cshtml
重命名为 MyReviewsIndex.cshtml
(删除 MyReviews 文件夹)。所以它看起来像下面
> Controllers
> AccountController
> Views
> Account
Index.cshtml
MyReviewsIndex.cshtml
//
// GET: /Account/Index
[AllowAnonymous] //temp
[HttpGet]
public IActionResult Index()
{
return View();
}
//
// GET: /Account/MyReviews/Index
[AllowAnonymous] //temp
[HttpGet]
[Route("Account/MyReviews")]
public IActionResult MyReviewsIndex()
{
return View();
}
现在您可以通过以下方式访问 2 个操作:
http://localhost/account
http://localhost/account/myreviews