@ Html.Partial,不同的控制器,发布后不起作用

时间:2018-07-20 18:32:01

标签: c# razor asp.net-core

我有两个控制器:

  • PeopleController
  • UnitController

我有一些看法,

  • /人/ _创建(部分视图)
  • /单元/编辑

/ Unit / Edit中有一个使用以下HTML的模式对话框:

<div id="Person-CreateNew" class="tab-pane fade in active">
   @Html.Partial("../People/_Create", new Person())
</div>

当我从Visual Studio运行时,这很好用,但是如果我发布,然后使用dotnet myproject.dll运行,则会收到“找不到视图_Create ... Searched / Units / _Create,/ Shared / Units / _Create的信息。 ...”

发布后如何使这项工作正常?

1 个答案:

答案 0 :(得分:0)

您应该始终使用完整路径,而不是使用相对路径:

<div id="Person-CreateNew" class="tab-pane fade in active">
   @Html.Partial("~/Views/People/_Create", new Person())
</div>

这将在视图编译过程之后继续起作用。

不过,请注意,建议使用Partial的异步版本:

<div id="Person-CreateNew" class="tab-pane fade in active">
   @await Html.PartialAsync("~/Views/People/_Create", new Person())
</div>