带有可选参数的ViewComponent

时间:2017-05-26 19:23:59

标签: c# asp.net-core asp.net-core-viewcomponent

我正在创建一组View Components,它们代表不同视图的过滤器。到目前为止他们工作得很好,但我不了解我遇到的这种行为。

如果我使用声明两个InvokeAsync:

public async Task<IViewComponentResult> InvokeAsync(string name)
public async Task<IViewComponentResult> InvokeAsync(string name, string title)

然后我明白了:

  

错误:查看组件&#39; MyViewComponent&#39;必须有一个名为&#39; InvokeAsync&#39;的公共方法。或者&#39;调用&#39;。

但如果我这样做的话:

public async Task<IViewComponentResult> InvokeAsync(string name, string title = "")

然后发生这种情况:

<vc:my name="Hello" title="Hello"></vc:my> // Gets rendered
<vc:my name="Hello" title=""></vc:my>  // Gets rendered
<vc:my name="Hello"></vc:my> // Doesn't call InvokeAsync

那么,是否可以使用默认参数?我不能使用模型(客户要求)

1 个答案:

答案 0 :(得分:6)

根据this Github issue,团队似乎不会这样做。

  

@rynowak 2017年4月29日 - 我打算将其移入并标记为争夺。此时,锁定我们的公共API并完成工具故事需要优先考虑。

然后:

  

@rynowak 2017年6月29日这不适合2.0.0。我们目前没有时间更新工具。

到目前为止,该团队没有就该问题做出进一步回应。