实际上,我有这个方法,它会返回我表格的所有字段。
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
测试-------------- Object2的------------- ----------- 84 110
云------------- ------------- Object2的84 ----------- 541
苹果------------- ------------- Object8 65 ----------- 874
我想要的是,当我的用户登录时以及他何时访问此页面时,他只会看到带有用户名的行。换句话说,我希望我的方法返回具有登录用户的用户名的行。
对不起我的英语,我希望你能理解我。 谢谢你的帮助,答案,链接,我全拿,我是asp的初学者
答案 0 :(得分:2)
如果您正在使用ASP.NET成员资格并加入EF模型的用户名字段,则只需调用User.Identity.Name即可。如果是这样,那么您可以从方法中删除参数:
public ActionResult Index(string searchString)
{
...
...
return View(user.Where(x => x.Order.Username == User.Identity.Name));