我正在创建一组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
那么,是否可以使用默认参数?我不能使用模型(客户要求)
答案 0 :(得分:6)
根据this Github issue,团队似乎不会这样做。
@rynowak 2017年4月29日 - 我打算将其移入并标记为争夺。此时,锁定我们的公共API并完成工具故事需要优先考虑。
然后:
@rynowak 2017年6月29日这不适合2.0.0。我们目前没有时间更新工具。
到目前为止,该团队没有就该问题做出进一步回应。