【发布时间】:2020-04-26 16:15:45
【问题描述】:
我在将视图中的 DropDownList 中的更新值返回到控制器时遇到问题。 DropDownList 允许用户将值从“未计划”更改为“计划”
我正在返回一个带有名为status 的属性的订单列表(可以是“已安排的”或“未安排的”)。目前所有订单都返回“未预定”状态。
下面是 DropDownList 的代码:
将 DDL 值分别更改为 yes 和 no 后,代码仍然返回原始值
显示动作代码
public ActionResult reviewOrderCSVPost()
{
// display vieworder page with status (unscheduled)
// return RedirectToAction("ViewOrders", new { status = "unscheduled" });
var data = OrderProcessor.LoadOrder("unscheduled");
List<Order> orders = new List<Order>();
foreach (var row in data)
{
orders.Add(new Order
{
orderId = row.orderId,
partId = row.partId,
projectName = row.projectName,
lastMaterialDate = row.lastMaterialDate,
shipDate = row.shipDate,
quantity = row.quantity,
status = row.status,
priority = row.priority
});
}
// OrderDetail ObjorderDetail = new OrderDetail();
// ObjorderDetail.OrderDetails = orders;
return View(orders);
}
Post 请求的操作代码(状态应根据用户选择的下拉列表而变化)
public ActionResult reviewOrderCSVSchedule( int[] orderId, string[] status)
{
编辑
目前的计划是通过使用“DDL_”+@item.orderId 和名为“hidden_”@item.orderId 的唯一隐藏字段来拥有一个唯一的 ddl。我将在 DDL 上放置一个 on change 方法并触发一个 jquery 函数,该函数将更改隐藏字段值的值。希望有效
【问题讨论】:
-
欢迎来到 StackOverflow!我们喜欢问题中的代码,但代码是文本而不是图像;-)
-
使用控制台检查下拉列表的值是否在变化?另外,最好将
item.status修改为modelItem.status -
我今天过得很糟糕,我刚刚在其他方法中发现了类似的问题。 Post 请求动作在控制器中接受 int[] Id,但是它有同样的问题,不会根据用户的选择而改变!!例如列表包含 ID 1,2 用户将序列交换为 2,1。如果您想知道如何捕获 id 数组,则发布请求 int[] 仍然返回 1,2。我正在使用
标签: javascript c# asp.net asp.net-mvc asp.net-mvc-5