【发布时间】:2016-03-05 18:03:55
【问题描述】:
我知道 Visual Studio 中可能有一些特殊之处,它突出显示 @URL 在当前上下文中不存在,但它仍然有效。但是我认为我遇到的问题是不同的。
我现在正在编写一个应用程序,我已经在自己的区域内完成了许多管理屏幕。到目前为止,主要区域只有一个ViewStart 指向一个_Layout,它检测您是否已登录或未显示登录页面(有效),如果您未登录,则显示一系列超链接您进入管理页面 - 一切正常。
在_Layout 中,@Url 突出显示为在当前上下文中不存在 - 但工作正常。
现在我已经开始编写主要区域,所以添加了一个Index.cshtml,它有一个@model,突出显示为在当前上下文中不存在,但我能够毫无问题地访问其中的数据。
问题是我在页面中添加的任何锚点并使用 @Url.Action 设置 URL 都不起作用,他们都说在当前上下文中不存在,当您查看页面的源时,href= 是缺少网址。
如果我手动编码 href= 它确实会出现在源代码中并且确实有效。
更新:
所以进一步评论下面的 2,我现在有......
<div class="btn-toolbar">
<a href="@Url.Action("new")" class="btn btn-primary btn-sm">
<i class="glyphicon glyphicon-plus"></i>
Create Company
</a>
</div>
@Html.ActionLink("Create Company","New","Summary")
在我的chtml 页面和...
<a href="@Url.Action("index", "Users", new {area = "Admin"})">User Admin</a>
<a href="@Url.Action("index", "Companies", new {area = "Admin"})">Customer Admin</a>
在我的 _Layout 中呈现 cshtml,但生成的 html 是...
<a href="/admin/Users">User Admin</a>
<a href="/admin/Companies">Customer Admin</a>
<a href="/logout">Logout</a>
<h2>
Overview Screen
</h2>
<br/>
<div class="btn-toolbar">
<a class="btn btn-primary btn-sm">
<i class="glyphicon glyphicon-plus"></i>
Create Company
</a>
</div>
<a href="">Create</a>
如您所见,锚点和@Url.Action 在_Layout 中工作正常,但@Url.Action 和@Html.ActionLink 都不会生成URL。
【问题讨论】:
-
我已经解决了所有“在当前上下文中不存在”的问题,web.config 文件 1 中的版本号不正确。只需要弄清楚为什么我的@Url.Actions 不呈现到此页面上的 href=。
-
尝试更改锚点和 Url.Action Html.ActionLink,结果非常相似,唯一的区别是锚点和 Url.Action 导致锚点完全没有 href,Html.ActionLink 给出了一个带有空 href 的锚点。
标签: c# asp.net-mvc asp.net-mvc-3