2012-07-31 80 views
0

實際上,我有這個方法會返回我的表的所有字段。認證後從數據庫中檢索特定的字段

public ActionResult Index(string username, string searchString) 
    { 

     var UserLst = new List<string>(); 

     var UserQry = from d in db.OrderDetails 
         orderby d.Order.Username 
         select d.Order.Username; 
     UserLst.AddRange(UserQry.Distinct()); 
     ViewBag.username = new SelectList(UserLst); 

     var user = from m in db.OrderDetails 
        select m; 

     if (!String.IsNullOrEmpty(searchString)) 
     { 
      user = user.Where(s => s.Order.FirstName.Contains(searchString)); 
     } 

     if (string.IsNullOrEmpty(username)) 
      return View(user); 
     else 
     { 
      return View(user.Where(x => x.Order.Username == username)); 
     } 
    } 



    [HttpPost] 
    public string Index(FormCollection fc, string searchString) 
    { 
     return "<h3> From [HttpPost]SearchIndex: " + searchString + "</h3>"; 
    } 

我的表看起來像這樣:

用戶名--------- ----------產品價格------- --- N°購物車

測試-------------- Object1 ------------- 20 ---------- -110

test -------------- Object2 ------------- 84 ----------- 110

雲------------- Object2 ------------- 84 ----------- 541

Apple --- ---------- Object8 ------------- 65 ----------- 874

我想要的是,當我的用戶是登錄,當他要進入這個頁面時,他只會看到帶有他的用戶名的行。換句話說,我想我的方法返回具有登錄用戶的用戶名的行。

對不起,我希望你能理解我。 感謝您的幫助,答案,鏈接,我把所有的,我是初學者在asp

+1

你的問題是什麼? – 2012-07-31 11:49:47

+0

將用戶名字段映射到產品似乎不太合適,您是不是應該將角色映射到其他位置?例如管理員/用戶等 – James 2012-07-31 11:56:47

+0

對不起,如何設置此項,返回用戶名爲test時用戶測試登錄時的行?我不問這個解決方案,但至少有一種「思維方式」(我真的不知道怎麼用英語說)。這更清楚嗎? – Alternative 2012-07-31 12:01:44

回答

2

如果您使用ASP.NET成員資格,並加入您的EF模型的用戶名字段,然後調用User.Identity。名稱。如果是這樣,那麼你可以從方法中刪除參數:

public ActionResult Index(string searchString) 
    { 

... 
... 

    return View(user.Where(x => x.Order.Username == User.Identity.Name)); 
+0

它的工作原理,我正在尋找更復雜的東西......謝謝大家,也用我的英語理解! – Alternative 2012-07-31 12:23:46

相關問題