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°Cart

测试-------------Object1-------------20------------110

测试-------------Object2-------------84------------110

云-------------Object2-------------84------------541

苹果-------------Object8-------------65------------874

我想要的是,当我的用户登录并访问此页面时,他只会看到带有他的用户名的行。换句话说,我希望我的方法返回带有登录用户用户名的行。

请原谅我的英语,我希望你能理解我。感谢您的帮助,答案,链接,我全部接受,我是asp的初学者

4

1 回答 1

2

如果您使用 ASP.NET 成员资格并加入 EF 模型中的用户名字段,则只需调用 User.Identity.Name。如果是这样,那么您可以从方法中删除参数:

  public ActionResult Index(string searchString)
    {

...
...

   return View(user.Where(x => x.Order.Username == User.Identity.Name));
于 2012-07-31T11:57:05.203 回答