HTML.Partial在MVC视图中导致404

时间:2019-01-27 22:39:49

标签: c# asp.net-mvc asp.net-mvc-partialview

我以前曾问过一个有关抛出404错误的问题,但是由于尝试帮助我进行调试的人们的帮助,我现在有一个更具体的问题要问。

加载任何调用@Html.Partial的视图时,我看到以下错误:

This localhost page can’t be found

在Visual Studio中,我看到return View()被击中。

来自HomeController的示例方法:

    [Route("")]
    public ActionResult Welcome()
    {
        return View();
    }

如果相关,我正在使用Microsoft.AspNet.MVC5.2.7

浏览器错误图片:

enter image description here

RouteConfig:

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.MapMvcAttributeRoutes();
    }
}

我的目录:

enter image description here

Welcome.cshtml:

@using Newtonsoft.Json
@{
Layout = null;
}    
<!doctype html>
<html class="no-js" lang="">
<head>
    <title>Test</title>
    @Html.Partial("_HeadPartial")
</head>
<body>
  <p></p>
</body>
</html>

_HeadPartial:

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

任何部分引用:

 @Html.Partial("_AnalyticsPartial")

给我上述404错误;删除引用可以使渲染成功。我的分页可以为空,但仍会显示404。

为什么@Html.Partial会导致这种情况?

1 个答案:

答案 0 :(得分:1)

404是因为它找不到您的局部视图。您只需要包括部分视图的完整路径,因为它位于与当前视图不同的文件夹中:

@Html.Partial("~/Views/Shared/_HeadPartial")