我试图从最简单的意义上找出新的ViewComponents功能,但我遇到了麻烦,缺乏文档也无济于事。
我的第一个目标是使用字符串列表调用我的ViewComponent并显示它们。
我能找到的关于ViewComponents的字面上唯一的指南就在这里,我到目前为止的所有内容都是基于:http://www.asp.net/vnext/overview/aspnet-vnext/vc#intro
我只想显示我在invoke方法中传递给它的字符串列表,但似乎无法让invoke方法在第一时间工作。
我的文件夹/文件结构是:
我非常简单的代码如下:
VcExampleViewComponent.cs
using Microsoft.AspNet.Mvc;
namespace Mvc6Example3.ViewComponents
{
public class VcExampleViewComponent : ViewComponent
{
public VcExampleViewComponent()
{
}
public IViewComponentResult Invoke(string[] strArr)
{
return View(strArr);
}
}
}
Default.cshtml (ViewComponent应呈现的内容)
@Model String[]
<h3>Strings passed in:</h3>
@foreach (String str in Model)
{
<span>@str</span>
}
Index.cshtml (调用ViewComponent的地方)
@{
ViewBag.Title = "Home Page";
}
<div class="jumbotron">
<h1>ViewComponent Example</h1>
</div>
@Component.Invoke("VcExample", new String[]{"hello", "hola", "bonjour" })
我得到的错误是:
500内部服务器错误
System.InvalidOperationException
无法找到&#39;调用&#39;匹配参数的方法。
at Microsoft.AspNet.Mvc.ViewComponents.DefaultViewComponentInvoker.Invoke(ViewComponentContext context) 在Microsoft.AspNet.Mvc.ViewComponents.DefaultViewComponentHelper.InvokeCore(TextWriter writer,ViewComponentDescriptor descriptor,Object [] arguments) 在Microsoft.AspNet.Mvc.ViewComponents.DefaultViewComponentHelper.Invoke(String name,Object [] arguments) 在/Views/Home/Index.cshtml:line 9中的Asp.ASPV__Views_Home_Index_cshtml.d__13.MoveNext()
这可能是一件非常微不足道的事情,我只是忽略了但似乎无法找到它。谢谢你的帮助!