ASP.Net Kimliğini kullanarak kullanıcı profillerini nasıl oluşturacağınızı anlamaya çalışırken bir engele çarptım. Veritabanımınthis, Id
AspNetUsers
UserPages
tablosuna yabancı bir anahtar olarak ayarlanmış olması.Html.DisplayDosya bir dizgeyi döndürerek başka bir sorguyu sorgulama
public ActionResult View(string id)
{
UserPage userPage = db.UserPages.Find(id);
(...)
return View(userPage);
}
Benim modelim: Ben görünümüne modeli sunmak için standart kod kullanıyorum
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;
using System.Web.WebPages.Html;
namespace Citrus.Models
{
public class UserPage
{
[Key]
public string Id { get; set; }
[ForeignKey("Id")]
public ApplicationUser User { get; set; }
public string AboutMe { get; set; }
public string AvailableTime { get; set; }
}
}
Sonra görünümünde kullanabileceğim
@Html.DisplayFor(model => model.AboutMe)
AboutMe
özelliğini db UserPages
'da görüntülemek için. Ben şöyle bir model aracılığıyla AspNetUsers
veri almaya çalıştığınızda Ama:
@Html.DisplayFor(model => model.User.Name)
Ben sadece geri boş bir dize olsun. User.Name
, null olmayan ve giriş veritabanında bulunur. Yöntemin boş çıkması için neden nedir ve bu nasıl çözülebilir?
@Html.DisplayFor(model => model.User.Property)
kullanarak kullanıcının herhangi özelliğini almak ve sizin için kullanarak sorgulayabilir: Aşağıdaki kodu ile benim sorgu değiştirilmesi
sorunu çözer @ Html.DisplayFor (model => model.User.Name) 'kullandığınız görünümü oluşturmak? –
@StephenMuecke Ayrıntılı? ActionResult'u asıl gönderide yayınladım. – whimzee
Ancak, bu 'UserPages' tablonuzdan' AspNetUsers 'tablonuzdan değerler alıyor. Görünümde kullandığınız model nedir? –