认证后从数据库中检索特定的字段
实际上,我有这个方法会返回我的表的所有字段。认证后从数据库中检索特定的字段
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
如果您使用ASP.NET成员资格,并加入您的EF模型的用户名字段,然后调用User.Identity。名称。如果是这样,那么你可以从方法中删除参数:
public ActionResult Index(string searchString)
{
...
...
return View(user.Where(x => x.Order.Username == User.Identity.Name));
它的工作原理,我正在寻找更复杂的东西......谢谢大家,也用我的英语理解! – Alternative 2012-07-31 12:23:46
你的问题是什么? – 2012-07-31 11:49:47
将用户名字段映射到产品似乎不太合适,您是不是应该将角色映射到其他位置?例如管理员/用户等 – James 2012-07-31 11:56:47
对不起,如何设置此项,返回用户名为test时用户测试登录时的行?我不问这个解决方案,但至少有一种“思维方式”(我真的不知道怎么用英语说)。这更清楚吗? – Alternative 2012-07-31 12:01:44