【发布时间】:2019-04-30 01:39:27
【问题描述】:
我正在阅读 Microsoft 文档,其中解释了 Area 用于路由 https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-2.2#areas 的用法。
有一部分我看不懂。
app.UseMvc(routes =>
{
routes.MapAreaRoute("duck_route", "Duck",
"Manage/{controller}/{action}/{id?}");
routes.MapRoute("default", "Manage/{controller=Home}/{action=Index}/{id?}");
});
控制器:
using Microsoft.AspNetCore.Mvc;
namespace MyApp.Namespace4
{
[Area("Duck")]
public class UsersController : Controller
{
public IActionResult GenerateURLInArea()
{
// Uses the 'ambient' value of area
var url = Url.Action("Index", "Home");
// returns /Manage
return Content(url);
}
public IActionResult GenerateURLOutsideOfArea()
{
// Uses the empty value for area
var url = Url.Action("Index", "Home", new { area = "" });
// returns /Manage/Home/Index
return Content(url);
}
}
}
为什么在GenerateURLInArea() 操作中,它返回/Manage 而在GenerateURLOutsideOfArea() 中它返回/Manage/Home/Index?
【问题讨论】:
-
请用文字而不是图片发布代码
-
@Dani 更新为文字
-
@muhihsan 我遵循示例但得到相反的结果。你得到和我一样的结果吗?
-
@itminus 我刚刚尝试过,确实我得到了相反的结果。那是有道理的。谢谢!
标签: c# asp.net-mvc asp.net-core .net-core