SOS!我想要实现的是登录人员,查看他或她正在支持的用户(佛教) . 我现在正试图完全接受ViewModels以凝聚视图 . 我使用simplemembership MVC4与Mysql . 我有一个UserProperties(我的用户的所有细节)链接到Userprofile和其他所有工作 . 我通常使用两个数据库一个用于成员资格,另一个用于所有其他东西
楷模
UserProfile / UserProPerties - 扩展到所有其他属性
-
UserId
-
列出项目
-
用户名
UserProperty
-
FirstName
-
姓氏
-
SchoolName
-
UserId
Buddyship
-
buddyId
-
buddiedByUserId
-
buddiedUserId
Viewmodel模型
public class BuddyViewModel
{
public BuddyShip BuddyShip {get; set;}
public List<Buddyship> AllBudees {get; set;}
public UserProperty UserProperty { get; set; }
public PanelViewModel(Buddyship buddyship, List<Buddyship> allBudees)
{
Buddyship = buddyship;
AllBudees = allBudees;
}
}
BuddyViewModel控制器
// I believe this is where the magic should come from
public ActionResult Index(int? id)
{
//I get logged in user properties
var user = db.UserProperties.SingleOrDefault(x => x.UserName == User.Identity.Name);
Buddyship allBudees = db1.Buddyships.SingleOrDefault(u =>u.BuddiedByUserId == user.UserId);
var buds = from u in db.UserProperties
join m in db1.Buddyships on u.UserId equals m.BuddiedByUserId
where m.BuddiedByUserId == user.UserId
select new { u.FirstName, u.LastName, u.SchoolName, u.UserId };
var buddyviewmodel = new BuddyViewModel(buds //don't know what to put here);
return View(buddyviewmodel);
}
视图
@model IEnumerable<BudTT.Models.BuddyViewModel>
@foreach (var item in Model.Buddyships)
{
<p>@Html.DisplayFor(model =>model.UserProperty.FirstName)</p>
<p>@Html.DisplayFor(model =>model.UserProperty.LastName)</p>
}
谢谢,如果你能够提供帮助
1 回答
尝试按如下方式更改代码 .
视图模型:
你的行动:
改变观点 . 在您的操作中,您只发送一个BuddyViewModel,其中包含UserProperties列表,但不包含BuddyViewModel列表