1

私はaspを初めて使用するので、助けを求めたいと思います。MvcMusicStoreチュートリアルヘルプを使用してストアを構築しました。次に、OrderIdを使用してデータベースを検索します。orderidが表示されたらすぐに、送信ボタンをクリックすると、データベースの対応する行が表示されます。私の方法は次のとおりです

    public ActionResult SearchOrder(int? myid)
    {
        var s = from sp in db.Railways
              select sp;
        string oid = myid.ToString();
        if (!string.IsNullOrEmpty(oid))
        {
            s = s.Where(st => st.OrderID == (Convert.ToInt16(oid)));
        }
        return View(s.ToList());

    }

また、私は次のようなコードに疲れました

    public ActionResult SearchOrder(int? myid)
    {
        if (id != null)
        {
            if (ViewBag.OrderID == id.Value)
            {
                s = s.Where(st => st.OrderID == id);
            }
        }
        return View(s);
    }

私が試した2番目の方法では、内容もエラーも表示されていません。plsは私を助けます。

4

1 に答える 1

0

これを試して:

public ActionResult SearchOrder(int? myid)
{
    var s = from sp in db.Railways
          select sp;
    if (myid.HasValue)
    {
        s = s.Where(st => st.OrderID == myid.Value);
    }
    return View(s.ToArray());

}

まず、string oid = myid.ToString();myid が null の場合、null または空の文字列にならないため、例は機能しません。2 番目の例は条件に失敗し(ViewBag.OrderID == id.Value)、さらにコンパイルされません。

于 2012-11-30T11:04:24.987 に答える