Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过表单过帐的对象已更改,其id设置为不同的id_C#_Html_Asp.net_Asp.net Core - Fatal编程技术网

C# 通过表单过帐的对象已更改,其id设置为不同的id

C# 通过表单过帐的对象已更改,其id设置为不同的id,c#,html,asp.net,asp.net-core,C#,Html,Asp.net,Asp.net Core,当我发布表单时,车辆id设置正确,但在我的名为Order的对象中,所有属性都为空,id设置为车辆id。 对不起,我解释得不好,但我不知道该如何形容 当我调试GET方法和view时,一切都很好,但当涉及POST方法时,我将鼠标悬停在方法参数上方时,Order selected.id已经与int id 这是我的密码: 查看模型: public class AssignOrderViewModel { public Vehicle Vehicle { get; set; } publi

当我发布表单时,车辆id设置正确,但在我的名为Order的对象中,所有属性都为空,id设置为车辆id。 对不起,我解释得不好,但我不知道该如何形容

当我调试GET方法和view时,一切都很好,但当涉及POST方法时,我将鼠标悬停在方法参数上方时,
Order selected.id
已经与
int id

这是我的密码:

查看模型:

public class AssignOrderViewModel
{
    public Vehicle Vehicle { get; set; }
    public List<Order> OrderList { get; set; }
    public Order SelectedOrder { get; set; }
}
public class Order
    {
        public int Id { get; set; }
        public Address PickUpAddress { get; set; }
        public Address DropOffAddress { get; set; }
        public DateTime PickUpTime { get; set; }
        public DateTime DropOffTime { get; set; }
        public OrderState OrderState { get; set; }
        public List<Vehicle> AssignedVehicles { get; set; }
        public List<Cargo> Cargo { get; set; }
    }
public async Task<IActionResult> AssignOrder(int? id, int? selectedOrderId)
        {
            if (id == null)
            {
                return NotFound();
            }

            var vehicle = await _context.Vehicles
                .Include(v => v.LoadingSpace)
                .Include(v => v.Position)
                .FirstOrDefaultAsync(m => m.Id == id);
            if (vehicle == null)
            {
                return NotFound();
            }
            var orderList = new List<Order>(_context.Orders.Include(o => o.PickUpAddress).Include(o => o.DropOffAddress).Include(o => o.Cargo).Include(o => o.AssignedVehicles).Include("Cargo.CargoUnit"));
            Order selectedOrder = null;
            if (selectedOrderId != null)
                selectedOrder = orderList.Where(o => o.Id == selectedOrderId).FirstOrDefault();

            AssignOrderViewModel assignOrderViewModel = new AssignOrderViewModel 
            { 
                Vehicle = vehicle, 
                OrderList = orderList, 
                SelectedOrder = selectedOrder
            };

            return View(assignOrderViewModel);
        }
@model TransportationManagementSystem.Models.AssignOrderViewModel
订单选择: 它工作正常,发送get并刷新页面,选中的顺序突出显示

@foreach (var order in Model.OrderList)
    {
            <a class="text-body order-element" asp-action="AssignOrder" asp-route-selectedOrderId="@order.Id">
                <div class="card my-3">
                    <div class="card-body order-element
                         @if (Model.SelectedOrder != null)
                         {
                         @(order.Id == Model.SelectedOrder.Id ? "selected-order" : "")
                         } ">
...
@foreach(Model.OrderList中的变量顺序)
{
...
发帖形式:我认为这里有问题

    <form asp-action="AssignOrder">
                                    <input type="hidden" asp-for="Vehicle.Id" />
                                    <input type="hidden" asp-for="SelectedOrder" />
                                    <button type="submit" class="btn btn-primary mt-2">Assign</button>
                                </form>
...

分配
...
我尝试用
车辆删除输入。Id
,Id仍然为车辆设置,订单Id仍然设置为车辆Id

我也试过:
,但还是不起作用


我做错了什么?

1.你如何提交表单?你上面的
是由
GET
提交的,而不是
POST
。2.另外,字段名不正确。请将它们更改为
我已经放弃了。我只是传递
int id
int selectedOrderId
。我想问题是这两个属性都不正确这些证书的名称分别为Id.Id和SelectedOrder。我还有
method=“post”
    <form asp-action="AssignOrder">
                                    <input type="hidden" asp-for="Vehicle.Id" />
                                    <input type="hidden" asp-for="SelectedOrder" />
                                    <button type="submit" class="btn btn-primary mt-2">Assign</button>
                                </form>
...