SOS!私が達成しようとしているのは、ログインした人が、サポートしている (仲間になっている) ユーザーを確認することです。私は現在、ViewModels を完全に採用してビューを統合しようとしています。Mysqlでsimplemembership MVC4を使用しています。UserProperties (ユーザーのすべての詳細) が Userprofile にリンクされており、それ以外はすべて機能します。私は通常、メンバーシップ用と他のすべてのもの用に 2 つのデータベースを使用します。
モデル
UserProfile/UserProPerties - 他のすべてのプロパティ用に拡張
- ユーザーID
- リスト項目
- ユーザー名
ユーザー プロパティ
- ファーストネーム
- 苗字
- 学校名
- ユーザーID
バディシップ
- 仲間ID
- buddiedByUserId
- 仲間のユーザー ID
ビューモデル モデル
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>
}
お役に立てることがありましたらよろしくお願いいたします