【问题标题】:Get List of all Html pages names in Mvc 5 Application获取 Mvc 5 应用程序中所有 Html 页面名称的列表
【发布时间】:2017-02-03 12:14:00
【问题描述】:

我正在制作一个 mvc 5 应用程序,而不是我使用 html 页面的视图。现在我想要的是使用 jQuery / Javascript 获取我的应用程序中所有页面名称的列表,但没有找到任何帮助。请提出一些方法来做到这一点。 接下来我会将这些名称存储在数据库中。

【问题讨论】:

  • a) 你到底为什么不使用视图?这就是 MVC 框架的全部意义所在。 b) 这样做的目的是什么?您是否有这么多页面,您自己数不清并添加到数据库中? c)我不认为你可以在 javascript 中做到这一点 - 它无法从服务器的磁盘中读取,当然也无法插入到数据库中(除非你打算使用 node.js 或其他东西)
  • @ADyson 我将主题集成到我的 mvc 应用程序中,他们使用 html 页面而不是视图,这就是我使用 html 页面的原因。我知道伙计,但有时你必须做一些并非真正适合的工作。 b)我想生成我们应用程序中包含的所有页面的列表,这样每当我制作 html 页面时,它就会自动显示在列表中,而不是手动添加到列表中。我不想手动添加 html 页面一个一个,因为我们是程序员而不是数据输入操作员
  • @ADyson c) 可能是答案,因为你不知道答案,我在这个平台上分享了这个,因为我不知道答案,同样你也一样,但也许有人知道如何去做吧。
  • 您可以使用 MVC 通过使用布局视图来制作主题。只需将主题中的 HTML 复制/粘贴到 MVC 视图中即可。或者,如果您真的需要,您可以将静态 HTML 文件包含到您的 MVC 视图中。不,我真的不认为您可以使用 javascript 枚举您的文件和文件夹。这是浏览器中的安全限制。 Node.js 是服务器端 javascript,因此您可以使用它。但不是常规的基于浏览器的 JS。我认为刚刚发布的答案是您的最佳选择。
  • @Farhan 你有什么最好的解决方案吗?

标签: javascript jquery html asp.net-mvc-5


【解决方案1】:

永远不可能通过 JavaScript 或 JQuery 从 IIS 读取文件。更好的是,您可以手动将这些文件名直接添加到数据库中。

主要是担心你的问题,请尝试使用视图而不是 HTML。

您可以通过 .Net 做到这一点

DirectoryInfo dirInfo = new DirectoryInfo(Server.MapPath("~/"));
FileInfo[] fileInfo = dirInfo.GetFiles("*.html", SearchOption.AllDirectories); 

然后你可以在MVC Controller方法中写这个,然后通过JQuery AJAX调用它。

【讨论】:

  • @Farhan 您对此有什么最佳解决方案吗?
  • 是的,获取控制器中的所有页面名称,然后将其转换为 Json 并将名称传递给 javascript 文件并使用它。
  • @Farhan 这就是我在回答中提到的。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-03
  • 1970-01-01
  • 1970-01-01
  • 2015-04-03
  • 1970-01-01
  • 2016-03-12
  • 2010-12-23
相关资源
最近更新 更多