如題,不知道大家使用ASP.NET進行網站開發的時候遇沒遇到過這個錯誤的黃頁。
“沒有可訪問的表。請確保在 Global.asax 中注冊了至少一個數據模型并啟用了基架,或者實現自定義頁面?!?/p>
今天改著改著代碼就出現了這個問題,經過查找,最終發現原因如下:
摘要一部分代碼
.....
<li class="menu">
<ul>
<li id="li1">
<a id="A1" runat="Server" href="#">XXX項</a>
</li>
<li>
<ul>
<li id="li2" ><a id="A2" runat="Server" href="#">XXX子項</a></li>
</ul>
</li>
</ul>
</li>
.....當我點擊<a>標簽時就會報上面的錯誤。
原因是<a>標簽有runat="server"屬性,同時href="#"這就造成了這個問題的出現。
解決辦法:
1、把runat="server"去掉。(推薦)
2、把href 屬性加上合法的url。(推薦)
3、在Global.asax文件中“重要: 數據模型注冊 ”處有這樣一行代碼
//DefaultModel.RegisterContext(typeof(YourDataContextType), new ContextConfiguration() { ScaffoldAllTables = false });把這行代碼解注,把YourDataContextType換成你自己項目的數據上下文類,同時把ScaffoldAllTables變成true 。當然,這個方法只是解決不出黃頁的問題,但是你的功能問題應該沒法解決。
下面說一下為什么我會寫出
<a id="A1" runat="Server" href="#">XXX項</a>
這么怪異的代碼,因為我的項目用的是母版頁形式,之前在href里是導向各個內容頁的url,我最開始寫的是相對路徑,但是當把項目放到服務器上運行的時候,就必須用絕對路徑(這種形式:~/XXX/XXX.aspx)。但是這個時候就必須得加上runat="server"屬性了,后來我又是因為想給導航加效果,因為導向內容頁的時候會刷新整個頁面,所以效果也就看不到了,最后就對內容頁的<div>使用了ajax 達到了想要的效果。因為<a>標簽比較多,所以當時忘記去掉了一個runat="server"屬性,然后就發現了這個黃頁錯誤。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。