0

誰かが私が正しい軌道に乗っているかどうか教えてもらえますか?クエリを表示しようとしていますが、エラーが発生します。同じパラメータを持つ2つのテキストボックスがあり、そのパラメータはIEnumerableとして宣言されています。

 [HttpPost]
        public ActionResult Orders1(IEnumerable<int> order)
        {
            using (CostcoEntities1 context = new CostcoEntities1())
            {
                var query = string.Empty;

                foreach (var orderID in order)
                {

                        query = (from a in context.CM_Checkout_Details
                                 where a.CheckoutDetails_ID == orderID
                                 select a).ToString();
                }
                return View(query);
            }
        }   

これが私のコントローラーの外観です。テキストボックスの2つの数字(Id)を読み取り、それらのIDに基づいてデータを表示しようとしています。

@using (Html.BeginForm("Orders1", "Track", FormMethod.Post))
{
         @Html.TextBox("order")<br />
         @Html.TextBox("order")
        <input type="submit" value="Submit" />
}
4

1 に答える 1

0

まず、テキストボックスの名前を変更して、同じにならないようにします。

@using (Html.BeginForm("Orders1", "Track", FormMethod.Post))
{
         @Html.TextBox("order1")<br />
         @Html.TextBox("order2")
        <input type="submit" value="Submit" />
}

次に、アクションメソッドのシグネチャを変更します。

[HttpPost]
public ActionResult Orders1(string order1, string order2)

MVCのモデルバインディングは、たとえば、order1とorder2をRequest.Formに一致させようとします。これにより、テキストボックスの値が取得されます。

于 2012-12-14T17:44:07.500 に答える