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" }
})

我必须在控制器操作中获取选定的项目值。

我的行动将只接受接听电话。我只是不想作为查询字符串传递。那么如何实现呢?

4

3 回答 3

2

如果您想使用 GET 传递它,恐怕您唯一的选择是查询字符串。

w3.org 规范中引用:

“GET 方法意味着检索由 Request-URI 标识的任何信息(以实体的形式)。”

于 2012-10-26T07:39:19.190 回答
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 回答
1

如果您对使用查询字符串的厌恶是手动构建 url,然后将其包装在一个带有 method="get" 的表单中,这样您仍然可以使用下拉菜单等控件,但它们会在提交表单时自动转换为查询字符串.

于 2012-10-26T07:54:17.940 回答