2016-04-14 50 views
3

我正在寻找一种方法来调用View组件内的Model binder。我更喜欢使用asp.net内核的内置功能,但这只能在控制器中使用,而不能在View组件本身中使用。任何方式来解决这个问题?Asp.net核心查看组件模型绑定

+1

你提出的建议很奇怪。在MVC模式中,所有的数据绑定都应该在控制器层进行,所以当你到达View层时,你只需要处理数据结构,而不是业务类。深入解释您的需求,以便我们了解您需要什么以及如何达到目标。 – Bardo

+1

使用视图组件来构建可重用的小部件/ UI项目(例如:菜单栏等)。将模型绑定到真实的操作方法。您仍然可以在视图组件视图的代码中拥有一个表单,并将其发布到实际的操作方法中。 – Shyju

+0

我知道MVC应该如何处理并不是那么简单,但在这种情况下,我们需要在这个问题上处理它。我们有一个入口点(Controller in Action),根据参数我们可以确定应该调用哪些View组件(根据权限从数据库中获取信息,传递参数等) –

回答

3

据我所知,这是不可能的。在调用控制器动作之前,模型绑定进一步发生在框架的生命周期中。

我真的很感兴趣看到一些代码,为什么你需要这样做,看看是否有任何其他潜在的解决方案不涉及模型绑定。

3

根据View Components文档:

视图组件,请勿使用模型绑定,只取决于你调用到它的时候提供的数据。


但是,你可以通过模型为对象/参数到您的ViewComponent:

@await Component.InvokeAsync("PriorityList", MyModel) 

@await Component.InvokeAsync("PriorityList", new { maxPriority = 2, isDone = false }) 


什么你想达到什么目的?