我知道在Visual Studio中可能存在一些特殊情況,它將@URL強調爲不存在於當前上下文中,但仍然有效。但我認爲我有這個問題是不同的。C#ASP.NET MVC @ Url.Action在當前上下文中不存在
我現在正在編寫一個應用程序,我已經在自己的區域內完成了大量的管理屏幕。直到現在的主要區域只有一個ViewStart指向一個_Layout,它檢測你是否已經登錄或者沒有顯示登錄頁面(哪些工作),如果你不是,並且一系列的超鏈接,如果你是帶你到管理員網頁 - 所有的工作。
在_Layout中,@Url被突出顯示爲不存在於當前上下文中 - 但工作正常。
現在我已經開始編寫主區域了,所以添加了一個Index.cshtml,它有一個@model,它在當前上下文中突出顯示,但我能夠在沒有問題的情況下訪問數據。
問題是我在頁面中添加的任何錨點並使用@ Url.Action設置URL不起作用,他們都說在當前上下文中不存在,並且當您查看頁面源時,href =因爲它的URL而丟失。
如果我手動編碼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文件中的版本號不正確。只需要弄清楚爲什麼我的@ Url.Actions不會渲染到此頁面上的href =。 – Tom
嘗試更改錨點和Url.Action Html.ActionLink,結果非常相似,唯一的區別是錨點和Url。動作產生一個沒有href的錨,Html.ActionLink給出一個空href的錨。 – Tom