Asp.net 需要数据的MVC分区/控件

Asp.net 需要数据的MVC分区/控件,asp.net,asp.net-mvc,viewmodel,Asp.net,Asp.net Mvc,Viewmodel,管理出现在许多视图上并且还需要viewmodel(假设它需要从数据库获取一些数据)的分部的建议“最干净”的方法是什么 在新的ASP.NET MVC 2框架中,可以使用Html.RenderAction()方法。这允许您从视图中调用操作,并在视图中获取生成的视图: MVCContrib项目有一个名为Subcroller的东西,它基本上为您提供了相同的功能:只需将此部分视图放在视图/共享文件夹中,任何其他视图都可以访问它 如果使用ViewModel模式,则可以使用此局部视图所需的对象组合ModelV

管理出现在许多视图上并且还需要viewmodel(假设它需要从数据库获取一些数据)的分部的建议“最干净”的方法是什么

在新的ASP.NET MVC 2框架中,可以使用Html.RenderAction()方法。这允许您从视图中调用操作,并在视图中获取生成的视图:


MVCContrib项目有一个名为Subcroller的东西,它基本上为您提供了相同的功能:

只需将此部分视图放在视图/共享文件夹中,任何其他视图都可以访问它

如果使用ViewModel模式,则可以使用此局部视图所需的对象组合ModelView。像这样:

public class MyPartialViewViewModel
{
    // my properties here    
}

public class MyView1ViewModel
{
    public MyPartialViewViewModel Partial {get; private set;}
    public MyView1ViewModel(MyPartialViewViewModel partial)
    {
       this.Partial = partial;
    }
}

然后您只需将Partial属性传递给您的Partial视图。

使用Html.RenderAction(),您将调用哪个控制器?据我所知,您正在调用当前控制器。要调用另一个控制器,您可以为RenderAction方法提供一个额外的参数,名称为:Html.RenderAction(“ActionName”,“ControllerName”),但是您必须指定一个控制器作为所有“公共”数据的供应商。我猜一定是从什么地方来的!