How can I reuse a DropDownList in several views with .NET MVC

后端 未结 13 1086
感动是毒
感动是毒 2020-12-13 15:53

Several views from my project have the same dropdownlist...

So, in the ViewModel from that view I have :

public IEnumerable Fo         


        
13条回答
  •  隐瞒了意图╮
    2020-12-13 16:24

    Extension methods to the rescue

    public interface ISelectFoo {    
        IEnumerable FooDdl { get; set; }
    }
    
    public class FooModel:ISelectFoo {  /* implementation */ }     
    
    public static void PopulateFoo(this ISelectFoo data, FooRepository repo)
    {
        data.FooDdl = repo.GetAll().ToSelectList(x => x.Id, x => x.Name);
    }
    
    
    //controller
    var model=new ViewModel(); 
    model.PopulateFoo(repo);
    
    
     //a wild idea
    public static T CreateModel(this FooRepository repo) where T:ISelectFoo,new()
    {
        var model=new T();
        model.FooDdl=repo.GetAll().ToSelectList(x => x.Id, x => x.Name);
        return model;
     }
    
    //controller
     var model=fooRepository.Create();
    

提交回复
热议问题