asp.net mvc 3 razor一个视图中有两个控制器

时间:2012-05-07 10:30:24

标签: c# asp.net-mvc asp.net-mvc-3 razor

想在一个视图中使用两个模型。我有两个控制器,一个用于当前用户

 public class ProfileModel
    {
        public int ID { get; set; }
        public decimal Balance { get; set; }
        public decimal RankNumber { get; set; }
        public decimal RankID { get; set; }
        public string PorfileImgUrl { get; set; }
        public string Username { get; set; }
    }

和第二次为firends

 public class FriendsModel 
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string ProfilePictureUrl { get; set; }
        public string RankName { get; set; }
        public decimal RankNumber { get; set; }
    }

个人资料模型总是包含一个项目,而朋友模型包含列表

我制作了包含两种模型的新模型:

public class FullProfileModel 
    {
        public ProfileModel ProfileModel { get; set; }
        public FriendsModel FriendModel { get; set; }
    }

我尝试像这样填写FullProfile模型

List<FriendsModel> fmList = GetFriendsData(_UserID);

            FullProfileModel fullModel = new FullProfileModel();

            fullModel.ProfileModel = pm;
            fullModel.FriendModel = fmList.ToList();

但是visual studio在.ToList()

上给出了错误

错误:

Cannot implicitly convert type 'System.Collections.Generic.List<NGGmvc.Models.FriendsModel>' to 'NGGmvc.Models.FriendsModel'

请告诉我如何在单一视图中显示两个模型。

P.S。即时通讯使用mvc3剃刀视图引擎

由于

3 个答案:

答案 0 :(得分:1)

更正您的ViewModel

public class FullProfileModel 
    {
        public ProfileModel ProfileModel { get; set; }
        public IList<FriendsModel> FriendModels { get; set; }
    }

答案 1 :(得分:1)

我认为你需要收藏

public class FullProfileModel 
{
    public ProfileModel ProfileModel { get; set; }
    public List<FriendsModel> FriendModels { get; set; }
}

答案 2 :(得分:1)

您正尝试使用值List设置FriendsModel类型的属性。

 public FriendsModel FriendModel { get; set; }

更改为:

public class FullProfileModel 
    {
        public ProfileModel ProfileModel { get; set; }
        public IList<FriendsModel> FriendModel { get; set; }
    }