2017-02-17 70 views
-2

上的错误404我创造了这个:一个HTML链接

<a href="~/Areas/Admin/Views/Event/Index.cshtml"><span>Events:</span>&nbsp;<span class="badge">@ViewBag.Count</span></a>

算表的数量。当我尝试浏览到参考:~/Areas/Admin/Views/Event/Index.cshtml我得到如下:

HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.

我已经验证了,我已经把它改为:@Html.ActionLink("Event", "Index")到:@Url.View("Event", "Index")更多的人,我已经仔细查看路径,我已经从控制器中删除了授权并在互联网上搜索,但没有。

有人可以给我一些建议吗?

+0

您是否尝试过没有〜 – PersyJack

+1

您不直接链接到视图。你链接到行动。请记住,您正在使用MVC。 – Amy

+0

如果取消路径,它显示相同的事情! –

回答

1

如果您使用的是区域。然后你需要使用正确的过载形式。

这里是你需要的东西:

@Html.ActionLink("url text", "Index", "Event", new { area = "Admin" }, null); 

希望这有助于!

1

你的行为和控制器是向后的。第一个参数也是标签。见documentation

public static MvcHtmlString ActionLink( this HtmlHelper htmlHelper, string linkText, string actionName, string controllerName

您当前的代码是:

@Html.ActionLink("Event", "Index") 

但是,你有顺序不对,你就错过了标签。假设你的控制器是EventController,这将是

@Html.ActionLink("the link label", "Index", "Event") 
+0

对不起Amy,但它是一样的,它显示相同的错误。 –

+0

这非常令人沮丧! –

+0

它实际呈现的是什么? “它不起作用”并不能帮助我理解为什么它不起作用。 – Amy

1

假设区“管理员”内部控制器被称为事件,剃刀代码生成正确的链接将是:

@Html.ActionLink("url text", "Index", "Event", new { area = "Admin" }); 
// Note: You might have problem with the "badge" class 

使用经典的html网址:

<a href='@Url.Action("Index", "Event", new { area = "Admin" })'> 
    <span>Events:</span>&nbsp;<span class="badge">@ViewBag.Count</span> 
</a> 
+0

对不起,显示器的错误是404。 –

+0

你的“管理员”区有没有一个名为“EventController”的控制器类?你在那个控制器里有一个叫做“索引”的动作吗? –

+0

您发布的第一个操作链接不正确..没有接受“字符串,字符串,字符串,RouteValueDictionary”的重载..您需要添加html属性..就像这样:'@ Html.ActionLink(“url text” ,“Index”,“Event”,new {area =“Admin”},null);' –