2016-04-14 12 views
0

ASP.Net Kimliğini kullanarak kullanıcı profillerini nasıl oluşturacağınızı anlamaya çalışırken bir engele çarptım. Veritabanımınthis, IdAspNetUsersUserPages 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?

+0

@Html.DisplayFor(model => model.User.Property) kullanarak kullanıcının herhangi özelliğini almak ve sizin için kullanarak sorgulayabilir

UserPage userPage = db.UserPages.Include(x => x.User).Where(x => x.Id == id).FirstOrDefault() 

: Aşağıdaki kodu ile benim sorgu değiştirilmesi

UserPage userPage = db.UserPages.Find(id); 

sorunu çözer @ Html.DisplayFor (model => model.User.Name) 'kullandığınız görünümü oluşturmak? –

+0

@StephenMuecke Ayrıntılı? ActionResult'u asıl gönderide yayınladım. – whimzee

+0

Ancak, bu 'UserPages' tablonuzdan' AspNetUsers 'tablonuzdan değerler alıyor. Görünümde kullandığınız model nedir? –

cevap

0

Hiçbir zaman AspNetUsers, UserPages sorgusuna dahil olmadığımı ortaya çıkarır. Şimdi kontrolör yöntemi nedir

İlgili konular