无法为我的MVC区域呈现正确的网址

时间:2015-11-01 14:24:59

标签: c# asp.net-mvc asp.net-mvc-areas

刚开始钻研路线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网址进入链接......他们就可以了。

例如:

  • HREF = “/前奏/教程/一个”

1 个答案:

答案 0 :(得分:0)

很抱歉要回答我自己的问题......

显然,Html.ActionLinkUrl.Action命令不考虑您可能放在控制器顶部的任何属性前缀。因此,您仍然必须输入您的行动&amp;正常格式的控制器名称...那么...加载您的area

这是为我工作的......

@Url.Action("one", "introtutorials", new { Area = "intro" })