.net 在mvc3中的Get Call上将数据从视图传递到控制器

ttcibm8c  于 2023-04-22  发布在  .NET
关注(0)|答案(3)|浏览(105)

我有一个下拉菜单,用于在视图中显示页面大小。例如

@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调用。我只是不想作为查询字符串传递。那么如何实现呢?

cig3rfwq

cig3rfwq1#

如果你想用GET传递它,恐怕你唯一的选择就是查询字符串。
引用w3.org spec

  • “GET方法意味着检索请求URI标识的任何信息(以实体的形式)。"*
bvjxkvbb

bvjxkvbb2#

我的想法是准备更多的动态和发送数据的模型。

<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() });

model将获得值“m.CurrentVoucher”。只有一个例子(我从我的笔记中取这个)和“model.kidsList”,你可以更改为“model.OutgoingStatus”,你可以更改名称。阅读这个例子,我希望我有所帮助。

twh00eeo

twh00eeo3#

如果你不喜欢使用查询字符串,而是手工构建url,那么用method=“get”把它 Package 在一个表单中,这样你仍然可以使用像dropdown这样的控件,但是它们会在提交表单时自动转换为查询字符串。

相关问题