我有一個 razor .net core 3 專案,我在其中使用 Razor 頁面作為視圖,我將有一些不是 cshtml 的 html 頁面,當我單擊時我需要能夠打開一個直接的 html 頁面鏈接或A標簽
我嘗試在導航欄中的 _Layout.cshtml 中使用來打開 TestPage.html
<li>
<a asp-page="/Content/TestPage">Content</a>
</li>
這雖然在我檢查頁面時不會生成任何 html,所以當我單擊鏈接時沒有任何反應。我知道如果我要查找的頁面是頂部帶有@page 的 Razor 頁面,它會起作用
我也試過
<li>
<a href="/Content/TestPage">Content</a>
</li>
這雖然總是給出錯誤“找不到本地主機頁面”,即使它的確切路徑也是如此。我知道,如果我只是將 html 頁面設為 cshtml 頁面,它會起作用,但在我正在處理的專案的這個特定時刻,它必須是 html 頁面,并且沒有任何作業。
TestPage.html 與其他剃須刀視圖一起位于 Pages 檔案夾下,然后最終位于內容檔案夾中。
如果您需要更多背景關系,請隨時提出任何幫助
測驗頁.html
<div>Test Text To Show</div>
uj5u.com熱心網友回復:
如果要在 Razor 頁面專案中使用 Razor 視圖而不是 Razor 頁面,則不應將 Razor 視圖添加到 Pages 檔案夾中。您需要創建一個 Views 檔案夾并將包含 _Layout.cshtml 的 Shared 檔案夾放入其中。此外,您需要放置 _ViewImports.cshtml 和 _ViewStart.cshtml。
檔案夾結構:

_ViewImports.cshtml:
@using {YourProjectName}
@using {YourProjectName}.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
_ViewStart.cshtml:
@{
Layout = "_Layout";
}
然后需要將mvc的路由添加到Startup.cs中:
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddControllers();
...
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
然后添加 Controllers 檔案夾并將 Content Controller 和 TestPage 添加到其中。
檔案夾結構:

內容控制器:
public class ContentController : Controller
{
public IActionResult TestPage()
{
return View();
}
}
結果:

uj5u.com熱心網友回復:
您的 href 最后缺少 .html 。您不能像參考控制器端點一樣參考靜態頁面。所以在你的情況下你想要:
<li>
<a href="/Content/TestPage.html">Content</a>
</li>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/461413.html
上一篇:ReturnUrl在使用ASP.NETCore6MVC的POST上始終為空
下一篇:將Json轉換為物件串列
