需要 select 来自视图数据的最后一个 ID
Need to select last ID from a viewdata
我有一个 ViewData,其中包含我的生产订单。我正在做一件事情,操作员可以通过 selecting 他想要处理的生产订单来创建新的生产,但理想的是显示已经创建的最后一个生产订单,而不是他必须遍历所有选项和 select 最后一个。有人可以帮我吗?
我正在使用 ASP-NET C# Razor Pages。
这是我的视图数据
ViewData["production_order_ID"] = new SelectList(_context.Production_Order, "production_order_ID", "production_order_ID");
这是我的页面
<div class="col-md-2" style="margin-top:10px">
<label asp-for="Production.production_order_ID" class="control-label">Ordem de Produção:</label>
<select id="orderList" name="ids" asp-for="Production.production_order_ID" class="form-control" asp-items="ViewBag.production_order_ID" onchange="getSensors(); myFunction(event);"></select>
</div>
现在显示的是 ViewData 上的第一项,但默认情况下我需要显示最后一项。
一种方法是使用视图模型:
public class OrdersViewModel
{
public List<Order> Orders { get; set; }
public int Selected { get; set; }
}
然后在您的操作方法中创建、填充视图模型并将其传递到视图中:
public IActionResult Index()
{
var orders = new List<Order>
{
new Order { OrderId = 1, OrderName = "Order # 1" },
new Order { OrderId = 2, OrderName = "Order # 2" }
};
var viewModel = new OrdersViewModel() {
Orders = orders,
Selected = orders.LastOrDefault().OrderId // get last order
};
return View(viewModel);
}
和视图:
@model MyWebApplication.Models.OrdersViewModel // use your namespace
<div class="col-md-2" style="margin-top:10px">
<label class="control-label">Ordem de Produção:</label>
<select id="orderList" name="ids" asp-for="@Model.Selected" class="form-control" asp-items="@(new SelectList(Model.Orders, "OrderId", "OrderName"))" onchange="getSensors(); myFunction(event);"></select>
</div>
基本上我刚才做的是
ViewData["production_order_ID"] = new SelectList(_context.Production_Order.Where(c => c.User.AspNetUser.UserName.Equals(User.Identity.Name)).OrderByDescending(c => c.production_order_ID).ToList(), "production_order_ID", "production_order_ID");
并且按照我的意图工作得很好。很抱歉浪费你们的时间,但非常感谢你们的回答。
我有一个 ViewData,其中包含我的生产订单。我正在做一件事情,操作员可以通过 selecting 他想要处理的生产订单来创建新的生产,但理想的是显示已经创建的最后一个生产订单,而不是他必须遍历所有选项和 select 最后一个。有人可以帮我吗?
我正在使用 ASP-NET C# Razor Pages。
这是我的视图数据
ViewData["production_order_ID"] = new SelectList(_context.Production_Order, "production_order_ID", "production_order_ID");
这是我的页面
<div class="col-md-2" style="margin-top:10px">
<label asp-for="Production.production_order_ID" class="control-label">Ordem de Produção:</label>
<select id="orderList" name="ids" asp-for="Production.production_order_ID" class="form-control" asp-items="ViewBag.production_order_ID" onchange="getSensors(); myFunction(event);"></select>
</div>
现在显示的是 ViewData 上的第一项,但默认情况下我需要显示最后一项。
一种方法是使用视图模型:
public class OrdersViewModel
{
public List<Order> Orders { get; set; }
public int Selected { get; set; }
}
然后在您的操作方法中创建、填充视图模型并将其传递到视图中:
public IActionResult Index()
{
var orders = new List<Order>
{
new Order { OrderId = 1, OrderName = "Order # 1" },
new Order { OrderId = 2, OrderName = "Order # 2" }
};
var viewModel = new OrdersViewModel() {
Orders = orders,
Selected = orders.LastOrDefault().OrderId // get last order
};
return View(viewModel);
}
和视图:
@model MyWebApplication.Models.OrdersViewModel // use your namespace
<div class="col-md-2" style="margin-top:10px">
<label class="control-label">Ordem de Produção:</label>
<select id="orderList" name="ids" asp-for="@Model.Selected" class="form-control" asp-items="@(new SelectList(Model.Orders, "OrderId", "OrderName"))" onchange="getSensors(); myFunction(event);"></select>
</div>
基本上我刚才做的是
ViewData["production_order_ID"] = new SelectList(_context.Production_Order.Where(c => c.User.AspNetUser.UserName.Equals(User.Identity.Name)).OrderByDescending(c => c.production_order_ID).ToList(), "production_order_ID", "production_order_ID");
并且按照我的意图工作得很好。很抱歉浪费你们的时间,但非常感谢你们的回答。