2

ビューにページサイズを表示するために使用されるドロップダウンがあります。例として

@Html.DropDownListFor(m => m.PageSize,
new List<SelectListItem>() { new SelectListItem() { Text = "10" }, 
new SelectListItem() { Text = "20" },
new SelectListItem() { Text = "50" },
new SelectListItem() { Text = "100" }
})

コントローラーアクション内で選択したアイテムの値を取得する必要があります。

私のアクションは get 呼び出しのみを受け入れます。クエリ文字列として渡したくないだけです。では、これを達成する方法は?

4

3 に答える 3

2

GET を使用して渡したい場合、残念ながら唯一のオプションはクエリ文字列です。

w3.org 仕様から引用するには:

「GET メソッドは、Request-URI によって識別される情報 (エンティティの形式) を取得することを意味します。」

于 2012-10-26T07:39:19.190 に答える
1

クエリ文字列の使用を嫌う場合は、手動でURLを作成し、method = "get"を使用してフォームにラップします。これにより、ドロップダウンなどのコントロールを引き続き使用できますが、フォームを送信すると自動的にクエリ文字列に変換されます。 。

于 2012-10-26T07:54:17.940 に答える
1

私の考えは、これをより動的に準備し、データをモデルに送信することです。

<td>
@Html.DropDownListFor(m => m.CurrentVoucher, new System.Web.Mvc.SelectList(Model.OutgoingStatusList, "Value", "Text"), new { style = "width:140px" })
</td>

------------
model.OutgoingStatusList = new List<SelectListItem>();
------------
model.KidsList = new List<SelectListItem>();
            for (int i = 0; i <= 20; i++)
                model.KidsList.Add(new SelectListItem { Value = i.ToString(), Text = i.ToString() });

モデルは値「m.CurrentVoucher」を取得します。例のみがあり(これは私のメモから取っています)、「model.kidsList」は「model.OutgoingStatus」に変更でき、名前を変更できます。この例を読んでください。

于 2012-10-26T07:46:12.197 に答える