在loggedinuser.cshtml(位于应用程序根目录的view s/shared文件夹中)视图中,我想调用ac controller的logout方法。我有两个选择:
使用ActionLink

@Html.ActionLink("Logout", "Logout", "AC", new { area = string.Empty })


<a href="@Url.Action("Logout", "AC", new { area = string.Empty })">Logout</a>

我之所以指定区域是因为我想调用AC控制器的操作方法,而不管它在哪个区域。
据我所知,@html.action link()和@url.action之间的区别是,首先生成一个锚标记,第二个锚标记返回一个url(如果我错了,请纠正我),所以我想两者都应该以相同的位置为目标,但这里@html.actionlink有以下链接位置:
http://localhost:13974/Home/logout?Length=2

<a href="@Url.Action(…具有以下链接位置:
http://localhost:13974/AC/Logout

当区域属性被移除时,两个链接都可以正常工作,但是当我指定区域时@html.actionLink()会中断
当我指定区域时,为什么两个链接都指向不同的位置?

最佳答案

你可以使用

@Html.ActionLink("Logout", "Logout", "AC", new { area = string.Empty }, null)

可以使用重载,LinkExtensions.ActionLink Method (HtmlHelper, String, String, String, Object, Object)
有关更多信息,请访问LinkExtensions.ActionLink
另外,
没有过载,因为LinkExtensions.ActionLink Method (HtmlHelper, String, String, String, Object)

关于c# - 在Asp.net MVC 4中指定区域属性时,ActionLink和Url.Action的目标位置不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20739206/

10-12 13:52