无法为我的 MVC 区域呈现正确的 URL
Cannot render correct URL for my MVC Areas
刚开始研究路线 Areas
。在我喜欢之前,我先尝试一些基本的东西。当我在地址栏中输入物理路线时,效果很好。但是,当我尝试使用 @Url.Action
或 @Html.ActionLink
创建一个 link 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);
}
}
我在 URL 的不幸尝试:
很明显,问题就在这里...
@Html.ActionLink("intro", "one", "tutorials", new { Area = "intro" }, null)
<a href="@Url.Action("one", "tutorials", new { Area = "intro" })">One</a>
这些解决不了任何问题and/or 废话...
旁注:
如果我 hand-type
将 url 放入 link...它们会起作用。
例如:
- href="/intro/tutorials/one"
很抱歉不得不回答我自己的问题...
显然,Html.ActionLink
和 Url.Action
命令不考虑您可能已放在控制器顶部的任何属性前缀。因此,您仍然必须以正常格式输入您的操作和控制器名称...然后...添加您的 area
.
这对我有用...
@Url.Action("one", "introtutorials", new { Area = "intro" })
刚开始研究路线 Areas
。在我喜欢之前,我先尝试一些基本的东西。当我在地址栏中输入物理路线时,效果很好。但是,当我尝试使用 @Url.Action
或 @Html.ActionLink
创建一个 link 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);
}
}
我在 URL 的不幸尝试:
很明显,问题就在这里...
@Html.ActionLink("intro", "one", "tutorials", new { Area = "intro" }, null)
<a href="@Url.Action("one", "tutorials", new { Area = "intro" })">One</a>
这些解决不了任何问题and/or 废话...
旁注:
如果我 hand-type
将 url 放入 link...它们会起作用。
例如:
- href="/intro/tutorials/one"
很抱歉不得不回答我自己的问题...
显然,Html.ActionLink
和 Url.Action
命令不考虑您可能已放在控制器顶部的任何属性前缀。因此,您仍然必须以正常格式输入您的操作和控制器名称...然后...添加您的 area
.
这对我有用...
@Url.Action("one", "introtutorials", new { Area = "intro" })