asp.net-mvc - asp.net mvc 独立 ascx 控制我如何最有效地链接(css 和 js)

标签 asp.net-mvc methodology

我需要一些建议。
(对于那些在我大量重新编辑这个问题之前已经阅读过这篇文章的人)

我开发了一些asp.net mvc网页。
每个页面都有一个母版和一些 ascx 控件(在 2 - 6 之间)嵌入到它的 js 和 css 文件中。
到目前为止,一切都很好。

为了提高模块化、灵 active 和可测试性,ascx 现在有望作为独立控件工作。
(每个 ascx 也有自己的 css 和 js 文件,在某些情况下它有另一个控件里面)

为了满足这个要求,我们用查询字符串调用 Controller 。
(不同于从页面调用它的方式 - 通过 Ajax)

呈现的 ascx(部分)显示在浏览器中,没有原始页面的所有其他部分。

在这种情况下,为了让部分正确显示(css)并正确执行(js/jquery),所有相关文件都需要添加(例如:jquery)到用户控件。
这与将文件放置在最合乎逻辑的位置(例如母版页)的概念相矛盾。

我该如何克服这个问题? 请记住,这与在应用程序中创建的每个“控制”ascx 文件相关。


示例:
我添加了 3 个案例的描述来描述我的场景:
(这是从我问 here 的另一个问题复制过来的)。

案例 1: 在页面案例中,页面可能有一些部分在构建页面时使用 ajax 加载。根据用户的操作,可能会使用 ajax 再次调用部分。在这种情况下,我将它们视为页面上的控件。

案例 2: 在独立案例中,可以直接从浏览器调用部分作为测试的一部分。在这种情况下,您只能在浏览器中看到部分内容。

情况 3: 在第三种情况下,部分可以作为 google chrome 扩展中 iframe 的一部分调用(例如)。在这种情况下,您可以在您的 Web 应用程序中可能未构建的页面中看到部分内容。


任何想法将不胜感激。

对于庆祝的人 - 新年快乐!

最佳答案

如果您需要向托管页面添加内容,您可以在 .ascx 文件中添加代码以在服务器端执行此操作。例如:

<%
  var link = new HtmlLink { Href = Url.Content("~/Content/Style/MySheet.css") };
  link.Attributes["rel"] = "Stylesheet";
  link.Attributes["type"] = "text/css";
  Page.Header.Controls.Add(link);
%>

为了让这个例子起作用,你的 head 标签必须有一个 runat="server"

关于asp.net-mvc - asp.net mvc 独立 ascx 控制我如何最有效地链接(css 和 js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4556768/

相关文章:

.net - 输入键触发错误的提交按钮

php - 在实现其主要功能后在 Web 应用程序中实现安全性是否合理?

ajax - 使用ajax更新foreach循环中的模型数据

c# - PagedList.Mvc 返回表中的所有记录

java - jUnit 测试精神

methodology - Final Year Project 使用哪种编程方法?

methodology - 什么是瀑布模型的替代方案

testing - SCRUM - 测试阶段在哪里?

asp.net - 是否可以从 ASP MVC 项目执行 Azure PowerShell 脚本?

javascript - 从其他页面重定向后,jQuery UI 对话框无法打开