MVC 视图和 JavaScript 文件

Posted

技术标签:

【中文标题】MVC 视图和 JavaScript 文件【英文标题】:MVC View and JavaScript file 【发布时间】:2009-09-25 08:19:35 【问题描述】:

当在一个视图中,在 MVC 中,并且你有你的 javascript 时,我试图将它移动到同一目录中的一个 JavaScript 文件,它报告它无法归档 javascript 文件

作为示例,我使用了 NerdDinner 和 DinnerForm.aspx,在与 DinnerForm.aspx 相同的目录中创建了一个名为 DinnerForm.js 的 JavaScript 文件,并在 aspx 文件中引用了它,如下所示:

这是问题所在,如果我的 JavaScript 文件与 DinnerForm.aspx 不在项目中的同一目录中,我需要将其保存在附近,我该怎么做?

我不想放置完整路径,例如:“~\views\dinners\dinnerform.js”,因为这只是一种解决方法,以后会引起问题

有什么想法吗?

【问题讨论】:

【参考方案1】:

您不能在 Views 文件夹中拥有 JavaScript 文件,因为它实际上并不存在于浏览器中。如果您查看 Views 文件夹中的 Web.config 文件,您会发现它被设置为 HttpNotFoundHandler 处理程序。这意味着它为对其文件夹的所有请求返回 404。

为什么不把它们放在 Scripts 文件夹中呢?你总是可以在它下面有子文件夹。

例如/Scripts/Dinner/dinnerform.js

【讨论】:

关于 HttpNotFoundHandler 的有趣信息。谢谢! 是的,我知道您可以这样做,但是它将 html 从 JavaScript 中分离出来,使其难以在后期维护,因此不这样做的原因。目前 JavaScript 位于 html 视图中,因此将其移动到另一个目录只会增加复杂性。【参考方案2】:

按照惯例,JavaScript 文件应该放在项目的 Scripts 文件夹中,并且可以链接为

<script src="<%= Url.Content("~/Scripts/jquery-1.3.2.js") %>"  

【讨论】:

以上是关于MVC 视图和 JavaScript 文件的主要内容,如果未能解决你的问题,请参考以下文章

参考视图文件夹中的 JavaScript 文件 - MVC 5

ASP.NET Core 2.0 MVC 6. 如何管理每个视图的javascript文件?

在 ASP.NET MVC 视图中突出显示 javascript 文件的语法?

在 MVC3 视图中使用嵌入式 javascript 或单独的 .js 文件更好吗?

MVC 5 JavaScript 缓存 [重复]

使用 MVC5 C# 和 Razor 在局部视图中运行 javascript