我正在使用 aspnet 5 和 MVC 6。
我已经使用 HERE 中的说明创建了一个 View 组件但是当我运行我的网站时出现错误
找不到名为“XX”的 View 组件。 在
@Component.Invoke("XX"))
这是我的项目的结构
namespace Test
{
public class XXViewComponent : ViewComponent
{
public IViewComponentResult Invoke()
{
return View();
}
}
}
然后在 View 文件夹中我有 Views/Assets/index.cshtml
<div>
<div class="col-md-4">
@Component.Invoke("XX"))
</div>
</div>
vc位于Views/Assets/Components/XX/default.cshtml
<div class="col-md-6" id="listOfCustomers">
<table class="table table-condensed">
<span> Test partial View</span>
</table>
</div>
最佳答案
我也遇到过类似的问题。 对我有帮助的是您自己使用的页面的底部部分(Avoiding magic strings):
从类名称(以及构造函数)中删除“ViewComponent”后缀 - 然后您将拥有:
public class XX : ViewComponent
调用 View 组件时使用
nameof
:@Component.Invoke(nameof(XX))
不要忘记在主视图 (Views/Assets/index.cshtml) 中使用 View 组件的
using
- 在您的情况下@using Test
这可能既可以帮助您,又可以保存组件编译时的调用。
正如 Joe Audette 指出的那样, View 可能位于不寻常的位置,但这会导致不同的错误消息。
关于asp.net-mvc - 找不到名为 'XX' 的 View 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33923502/