找不到部分视图'/ Views / Shared / ...或没有视图引擎支持搜索到的位置

时间:2018-08-23 13:47:34

标签: c# asp.net-mvc razor model-view-controller

在ASP.Net mvc cshtml页面中,我有以下代码调用位于我的文件夹中的4个局部视图:

<div id="accordion">
     <h3 style="padding-left: 50px">Instructions</h3>
        <div>@Html.Partial("/Views/Shared/_instruct.cshtml", null)</div>

    <h3 style="padding-left: 50px">Projects by  @Html.DisplayFor(model => model.FirstName) @Html.DisplayFor(model => model.LastName)</h3>
        <div>@Html.Partial("~/Views/Shared/_research.cshtml", Model.Proposalsvm)</div>
   <h3 style="padding-left: 50px">  Publications</h3>
        <div>  @Html.Partial("~/Views/Shared/_publications.cshtml", Model.Pubs)</div>
    <h3 style="padding-left: 50px">  Patents</h3>
        <div>   @Html.Partial("~/Views/Shared/_patents.cshtml", Model.Patents)</div>
    <h3 style="padding-left: 50px">Training</h3>
        <div>@Html.Partial("~/Views/Shared/_Student.cshtml", Model.Students)</div>
    </div>

所有视图都位于“共享”文件夹中,并且拼写正确。当我从本地计算机上运行代码时,将渲染所有局部视图。当我将代码部署到生产机器时,如果我注释掉第一个局部视图,则将呈现最后三个局部视图。如果没有,则会出现以下错误:

The partial view '/Views/Shared/_instruct.cshtml' was not found or no view engine supports the searched locations. The following locations were searched:
/Views/Shared/_instruct.cshtml 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: The partial view '/Views/Shared/_instruct.cshtml' was not found or no view engine supports the searched locations. The following locations were searched:
/Views/Shared/_instruct.cshtml

Source Error: 
line 19:        <div id="accordion">
Line 20:          <h3 style="padding-left: 50px">Instructions</h3>
Line 21:             <div>@Html.Partial("/Views/Shared/_instruct.cshtml", null)</div>
Line 22:             
Line 23:         <h3 style="padding-left: 50px">Projects by  @Html.DisplayFor(model => model.FirstName) @Html.DisplayFor(model => model.LastName)</h3>

Source File: d:\WebSite\BUD\Views\PUBLICATIONS_forUD\BARDat40.cshtml    Line: 21 

Stack Trace: 
[InvalidOperationException: The partial view '/Views/Shared/_instruct.cshtml' was not found or no view engine supports the searched locations. The following locations were searched:
/Views/Shared/_instruct.cshtml]
   System.Web.Mvc.HtmlHelper.FindPartialView(ViewContext viewContext, String partialViewName, ViewEngineCollection viewEngineCollection) +416
   System.Web.Mvc.HtmlHelper.RenderPartialInternal(String partialViewName, ViewDataDictionary viewData, Object model, TextWriter writer, ViewEngineCollection viewEngineCollection) +225
   System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData) +136
   ASP._Page_Views_PUBLICATIONS_forUD_BARDat40_cshtml.Execute() in d:\WebSite\BUD\Views\PUBLICATIONS_forUD\BARDat40.cshtml:21

引起问题的局部视图仅包含div,没有模型。我尝试了先前答案中的解决方案,但没有一个起作用。 (该视图的构建是Content,我已删除了所有内容,重新创建了部分视图,重命名了部分视图,从@ Html.Partial中删除了null,从视图中删除了cshtml -没有一个起作用。)

1 个答案:

答案 0 :(得分:4)

我认为应该是

<div>@Html.Partial("~/Views/Shared/_instruct.cshtml", null)</div>

您错过了指示相对路线的~ tilda