【发布时间】:2016-08-04 19:36:49
【问题描述】:
我有一个使用 ASP.NET MVC 架构和 SQL 作为数据库开发的项目。 UI 由用于业务逻辑的 .cshtml 和 .javascript (.js) 文件和 .cs 文件组成,我使用 Visual Studio 作为 IDE。当我在笔记本电脑上运行代码时,我遇到了一个奇怪的错误。然而,相同的代码在服务器上执行和部署时运行良好,没有任何错误。
以下是程序流程:
- 能够成功登录并连接到数据库(本地和服务器)
- 应显示仪表板,该仪表板应从数据库中检索记录以及图表。
- 仪表板模块的 Index.cstml 文件调用一个仪表板控制器,该控制器又调用几个负责图形、图表和记录检索的 .cshtml 文件。这些 .cshtml 文件调用某些 .js 文件,这些文件具有 UI 操作和相关功能的方法。
在使用仪表板页面调用仪表板控制器之前,该功能都可以正常工作。到目前为止,没有 .js 文件作为程序流程的一部分。下一个调用如下调用负责调用.js文件的.cshtml文件
return PartialView("_Request", rViewModel);
在这个_Request.cshtml 文件中,存在未加载的关联 .js 文件的路径。
<script src="/Scripts/Modules/Dashboard/request_methods.js?version=@DateTime.Now"></script>
<script src="/Scripts/Modules/Dashboard/request_events.js?version=@DateTime.Now"></script>
仪表板挂断,不显示任何记录或图表或图形。当我右键单击半加载的仪表板并说“检查”时出现以下错误,然后显示以下错误:
加载资源失败:服务器响应状态为 500(内部服务器错误)
http://localhost:50337/Scripts/generic.request_lock.js?version=7/28/2016%206:01:48%20PM Failed to load resource: the server responded with a status of 500 (Internal Server Error)
http://localhost:50337/Scripts/Modules/Dashboard/reportswidgets_methods.js?version=7/28/2016%206:01:48%20PM Failed to load resource: the server responded with a status of 500 (Internal Server Error)
该列表继续包含更多关联文件 .js 文件。更多观察可能会有所帮助:
- 同一项目在本地构建并部署在服务器上时,会在仪表板页面上显示记录和图表。
- 上面提到的所有 .js 文件以及更多文件都存在于它们应该在本地的位置。
- IIS 未在本地使用,因为在 Visual Studio 上使用开发版本并直接连接到数据库。
- 在本地和通过服务器连接到数据库时发生错误。
- 对于 IE 和 Chrome 观察到的情况相同。
我之前还不是 ASP.NET MVC 的开发人员,我请求以非常简单的方式帮助我解决这个问题。
【问题讨论】:
-
还尝试通过将上述文件的路径更改为带有“~”符号的相对路径,其余的 .js 文件在整个代码中使用相对路径调用。
-
请注意,model-view-controller 标签是针对有关模式的问题。 ASP.NET-MVC 实现有一个特定的标签。
-
使用您的浏览器工具(“网络”选项卡)检查将包含异常详细信息的响应。
-
“检查”会打开一个控制台,显示上述错误。
-
否,使用 Network 标签并检查响应(不是 Console 标签)