传递URL.action中的视图模型



我正在尝试将视图模型传递给控制器。

 @if (User.IsInRole("Customer"))
            {
                <input type="button" class="btn btn-danger" value="Rent Car" onclick="location.href='@Url.Action("PassingCar", "Bookings", new { id = item.VehicleID, Model = Model.Booking })'" />
            }

我正在使用动态模型,因此我可以在此视图中同时使用车辆和预订。

当代码到达我的控制器时,ID已通过,但是ViewModel中的数据已消失。

 public ActionResult PassingCar( int id, CreateBookingViewModel createdModel)
        {
            ///Checks that Vehicle exists in DB and v property is not null
            if (v == null)
            {
                return HttpNotFound();
            }
            else
            {

                /// sets the Vehicle attribute of the BookingViewModel to vehicle passed over
                createdModel.Vehicle = v;
            }
            return RedirectToAction("Create", "Bookings");
        }

如果有人知道我做错了什么,这将不胜感激。

您可以发布您最终的URL文本吗?

但是,您可能需要替换Model = model.Model.booking booking = json.encode(model.booking(

哦。还有另一个概率。您在URL操作中命名参数"模型",但在方法签名中为"创建模型"。

我发现了我的问题,所以我要为任何遇到同一件事的人发布答案,并找到此线程。

因为URL操作中的两个名称称为模型,这将创建一个全新的ViewModel传递给视图。这是由于我认为的事实,该模型是我创建的动态模型,因此正在创建的对象是ExpandOobject。

解决方案将是将ExpandOobject投射到正确的类型,但是我发现了另一种使用tempdata解决我的特定问题的方法。无论哪种方式都可以工作。

相关内容

  • 没有找到相关文章