Ame*_*sed 2 asp.net-mvc asp.net-core-mvc
我正在使用aspnet 5和MVC 6。
我已经按照此处的说明创建了一个视图组件,但是在运行网站时出现错误
找不到名为“ XX”的视图组件。在
@Component.Invoke("XX"))
Run Code Online (Sandbox Code Playgroud)
这是我项目的结构
namespace Test
{
public class XXViewComponent : ViewComponent
{
public IViewComponentResult Invoke()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
}
然后在views文件夹中,我有Views / Assets / index.cshtml
<div>
<div class="col-md-4">
@Component.Invoke("XX"))
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
小智 5
我有一个类似的问题。帮助我的是您自己使用过的页面底部(避免使用魔术字符串):
从类的名称(以及构造函数)的名称中删除“ ViewComponent”后缀-然后,您将拥有:
public class XX : ViewComponent
Run Code Online (Sandbox Code Playgroud)nameof
在调用视图组件时使用:
@Component.Invoke(nameof(XX))
Run Code Online (Sandbox Code Playgroud)不要忘记using
在主视图中使用视图组件(Views / Assets / index.cshtml)-就您而言@using Test
这既可以帮助您,又可以节省组件的调用时间。
正如Joe Audette指出的那样,视图可能位于不寻常的位置,但这将导致不同的错误消息。
您是否将命名空间添加到 _ViewImports.cshtml 中?
@using Test
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5368 次 |
最近记录: |