Нужно выбрать последний идентификатор из viewdata - PullRequest
0 голосов
/ 14 июня 2019

У меня есть ViewData с моими производственными заказами. Я делаю что-то, где оператор может создать новое производство, выбрав производственный заказ, над которым он хочет работать, но в идеале нужно было показать уже последний созданный производственный заказ вместо того, чтобы ему приходилось просматривать все параметры и выбирать последний. один. Кто-нибудь может мне помочь?

Я работаю с ASP-NET C # Razor Pages.

Это мои ViewData

 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, но мне нужно показать последний по умолчанию.

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

Так что в основном я только что сделал

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

и работал отлично для того, что я намеревался. Извините за потраченное время, ребята, но большое спасибо за ваш ответ.

0 голосов
/ 14 июня 2019

Один из способов сделать это - использовать модель представления:

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>
...