刚开始钻研路线Areas
。在我开玩笑之前,我先尝试一些基本的东西。当我在物理路线中键入地址栏时,它的效果很好。但是,当我尝试使用@Url.Action
或@Html.ActionLink
创建链接时,MVC无法弄清楚如何计算正确的路径。
打字工作:
所以,我知道路线设置正确...
http://localhost:51515/intro/tutorials/one
我的控制器看起来像:
再次,当我在地址栏中输入时,这会正确解析...
[RouteArea("intro")]
[RoutePrefix("tutorials")]
[Route("{action}")]
public class IntroTutorialsController : Controller
{
public ActionResult One()
{
var path = @"~/Views/tutorials/intro/one.cshtml";
return View(path);
}
}
我在网址上发现的问题:
显然,问题出在这里......
@Html.ActionLink("intro", "one", "tutorials", new { Area = "intro" }, null)
<a href="@Url.Action("one", "tutorials", new { Area = "intro" })">One</a>
这些没有解决任何问题和/或废话......
ON SIDE-NOTE:
如果我hand-type
网址进入链接......他们就可以了。
例如:
答案 0 :(得分:0)
很抱歉要回答我自己的问题......
显然,Html.ActionLink
和Url.Action
命令不考虑您可能放在控制器顶部的任何属性前缀。因此,您仍然必须输入您的行动&amp;正常格式的控制器名称...那么...加载您的area
。
这是为我工作的......
@Url.Action("one", "introtutorials", new { Area = "intro" })