如题,不知道大家使用ASP.NET进行网站开发的时候遇没遇到过这个错误的黄页。
“没有可访问的表。请确保在 Global.asax 中注册了至少一个数据模型并启用了基架,或者实现自定义页面。”
今天改着改着代码就出现了这个问题,经过查找,最终发现原因如下:
摘要一部分代码
..... <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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。