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

テスト--------------オブジェクト1-------------20----------- 110

テスト--------------オブジェクト2-------------84----------- 110

クラウド-------------オブジェクト2-------------84----------- 541

Apple ------------- 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 に答える