C# 关于在asp.net mvc 5中将数据从控制器传递到布局子视图的进一步说明
我想我有一个相当标准的问题,因为我想将某些数据从asp.NETMVC5控制器传递到共享视图,在我的例子中是导航 我有一个在导航共享视图中显示username和userpicture的模板,所以我需要将相应的数据传递给它 我的布局结构:C# 关于在asp.net mvc 5中将数据从控制器传递到布局子视图的进一步说明,c#,asp.net-mvc,asp.net-mvc-5,C#,Asp.net Mvc,Asp.net Mvc 5,我想我有一个相当标准的问题,因为我想将某些数据从asp.NETMVC5控制器传递到共享视图,在我的例子中是导航 我有一个在导航共享视图中显示username和userpicture的模板,所以我需要将相应的数据传递给它 我的布局结构: public abstract class ViewModelBase { public HeaderViewModel Header {get;} public NavigationViewModel Navigation {get;}
public abstract class ViewModelBase {
public HeaderViewModel Header {get;}
public NavigationViewModel Navigation {get;}
public FooterViewModel Footer {get;}
public ViewModelBase(HeaderViewModel header, NavigationViewModel navigation, FooterViewModel footer) {
Header = header;
Navigation = navigation;
Footer = footer;
}
}
public class HeaderViewModel {
// properties
public HeaderViewModel(...) {
}
}
public class NavigationViewModel {
// properties
public NavigationViewModel(...) {
}
}
public class FooterViewModel {
// properties
public FooterViewModel(...) {
}
}
- 共享\布局
- 共享\头
- 共享\导航
- %主体%
- 共享\Footer
谢谢:)使用基本视图模型。您仍然可以使用继承来构建视图模型中的功能,正如您所说,它们将共享一个公共的基本视图模型 我不确定您在使用这种方法时会遇到什么问题,但我建议,强类型、可维护的视图模型的好处会超过这些问题,它可以被您的所有视图使用,包括局部视图和
\u布局
建议您根据布局结构开始:
public abstract class ViewModelBase {
public HeaderViewModel Header {get;}
public NavigationViewModel Navigation {get;}
public FooterViewModel Footer {get;}
public ViewModelBase(HeaderViewModel header, NavigationViewModel navigation, FooterViewModel footer) {
Header = header;
Navigation = navigation;
Footer = footer;
}
}
public class HeaderViewModel {
// properties
public HeaderViewModel(...) {
}
}
public class NavigationViewModel {
// properties
public NavigationViewModel(...) {
}
}
public class FooterViewModel {
// properties
public FooterViewModel(...) {
}
}