我正在制作一个 ASP.NET Core MVC 项目。我设置了 HomeController,设置了 Home 和 Shared 文件夹的 Views 文件夹,在这些文件夹中我有适当的 .cshtml 文件(例如 Index.cshtml、_Layout.cshtml 和 _ViewStart.cshtml)。我还有一个 PartialViews 文件夹,里面有一堆 HTML 文件(不是 .cshtml 文件)。
我想要做的就是从浏览器向 PartialViews 文件夹中的 HTML 文件发出 Ajax get 请求(需要说明的是,该文件夹的路径为 MyProject\Areas\MyArea\PartialViews\SomeDoc.html)。我知道如果这个 HTML 文件在 wwwroot 文件夹中(静态文件保存在那里——我也在使用这个),我可以向 url 'localhost/SomeDoc.html' 发出一个 get 请求。但它不在 wwwroot 下,所以我想我必须通过我在 MyArea 中定义的 HomeController?我不知道如何使该格式的GET请求return View()
中HomeController.Index()
知道的取指令和文件夹路径指定返回HTML文件。我试过这个网址:'localhost/MyArea/Home/PartialViews/SomeDoc.html',虽然它只返回一个 404。
与 MVC 有关的ASP.NET Core文档似乎并没有真正解决这个问题,除非我误解了它们。我不确定的另一件事是,这个 PartialViews 文件夹中的这些 HTML 文件是否应该像这篇关于在 MVC中使用部分视图的文章一样使用。我很困惑,因为文章 (a) 只引用了 .cshtml 文件(而我只有 html 文件),并且 (b) 没有解释如何格式化视图请求(除非,再次,我遗漏了一些东西)。
看来您需要花更多时间处理文档。默认情况下,唯一公开提供的目录是wwwroot
. 如果您希望静态文件中间件也为另一个目录提供服务,则需要对其进行配置。但是,Views
直接为您的目录提供服务完全 100% 不合适,所以不要这样做。
如果您希望能够请求静态 HTML 文件,请将它们添加到wwwroot
或为此目的创建一个完全不同的目录,并通过静态文件中间件提供服务。
但是,通常情况下,静态 HTML 并没有太大用处,如果您真的需要静态 HTML,那么它会回避一个问题,为什么它不是开始时视图的一部分。正常路径是拥有.cshtml
视图,ASP.NET Core 会将视图呈现为 HTML 作为请求管道的一部分以返回响应。
简单地说,您只需创建一个返回PartialView
并传入.cshtml
要返回的文件的名称以及模型(如果适用)的操作。然后,在您的 JS 中,您对绑定到该操作的路由执行 AJAX 请求,然后您返回呈现为 HTML 的部分视图。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句