C# 要筛选的视图模型上的Ninject绑定属性

C# 要筛选的视图模型上的Ninject绑定属性,c#,asp.net,model-view-controller,ninject,C#,Asp.net,Model View Controller,Ninject,我是ninject的新手,所以你必须原谅这个潜在的愚蠢问题。我已经能够成功地将自己的自定义过滤器绑定到控制器操作,但是我的问题是,我可以对ViewModel上的属性执行相同的操作吗?因此,我的设想是: 我有一个视图模型,其属性如下所示 public class CreateViewModel { ... [PopulateWith(typeof(Country))] public IEnumerable<SelectListItem> Countries {

我是ninject的新手,所以你必须原谅这个潜在的愚蠢问题。我已经能够成功地将自己的自定义过滤器绑定到控制器操作,但是我的问题是,我可以对ViewModel上的属性执行相同的操作吗?因此,我的设想是:

我有一个视图模型,其属性如下所示

public class CreateViewModel
{
    ...
    [PopulateWith(typeof(Country))]
    public IEnumerable<SelectListItem> Countries { get; set; }
    ...
}
我所要做的就是在创建
CreateViewModel
的新实例时运行一块代码,它将使用数据库上下文来创建枚举。我不确定,即使是一个操作过滤器是否是正确的路径,就像您如何定制授权/日志功能一样。
BindFilter
似乎没有任何指向能够绑定属性的内容


在任何方向或任何资源上都有一个点是很好的

但通常您手动实例化视图模型,而不涉及任何容器,因此Ninject没有机会在其上运行任何自定义代码。那么,如何创建视图模型呢?还是我遗漏了什么?这就是我要问的,但我想你已经回答了xD。如果我不能运行任何定制的ninject代码,我认为不可能使用属性来水合viewmodel属性?RE:“如何创建视图模型”,正如您可能认为的那样
=newviewmodel
。有几个实例使用Automapper通过将数据库对象直接映射到视图模型来创建视图模型。也许您可以创建一些视图模型的通用工厂,并在此处执行所有必需的逻辑。
public class PopulateWithAttribute : Attribute
{
    public Type Type { get; }
    public PopulateWithAttribute(Type t)
    {
        Type = t;
    }
}