gpt4 book ai didi

asp.net-mvc - MVC4 将模型从 View 传递到 Controller

转载 作者:行者123 更新时间:2023-12-01 23:57:11 24 4
gpt4 key购买 nike

我有一个模型 View ,其中填充了与预订出租车相关的数据。

模型中有一个包含时间、价格、车辆类型的报价列表,我在其中显示了使用 foreach 的列表。每次 foreah 循环时,它都会构建一个表单和一个提交按钮,将我带到 Controller 中的“BookingStage1”操作。我还添加了一个隐藏字段,其中填充了特定报价的预订引用。

所以,我希望当它击中 Controller 中的操作结果时,模型将返回完全填充的状态,就像 View 一样。但它是空的,里面没有任何数据。

我希望当用户在各种搜索、结果和预订屏幕上进行时,在多个 Controller 之间传递填充的模型......

是否可以将完全填充的模型从 View 传递回下一个 Controller ?

谢谢

在我的搜索结果页面中,我有以下表单:

using (Html.BeginForm("BookingPage1", "SearchResults", FormMethod.Post))

我的表单中还有一个隐藏字段,如下所示:

<input type="hidden" id="BookingID" name="ChosenBookingID" value='@item.QuotationID' />

它发布到我的 Controller ,如下所示:

[HttpPost]
public ActionResult BookingPage1(string ChosenBookingID, Route theRoute)
{
//this does noting yet.
return View();
}

但是路线总是空的:(

最佳答案

我希望这个完整的示例对您有所帮助。

这是 TaxiInfo 类,其中包含有关出租车行程的信息:

namespace Taxi.Models
{
public class TaxiInfo
{
public String Driver { get; set; }
public Double Fare { get; set; }
public Double Distance { get; set; }
public String StartLocation { get; set; }
public String EndLocation { get; set; }
}
}

我们还有一个便捷模型,其中包含 TaxiInfo(s)列表:

namespace Taxi.Models
{
public class TaxiInfoSet
{
public List<TaxiInfo> TaxiInfoList { get; set; }

public TaxiInfoSet(params TaxiInfo[] TaxiInfos)
{
TaxiInfoList = new List<TaxiInfo>();

foreach(var TaxiInfo in TaxiInfos)
{
TaxiInfoList.Add(TaxiInfo);
}
}
}
}

现在,在家庭 Controller 中,我们有默认的 Index 操作,在本示例中,该操作创建两个出租车司机并将他们添加到 TaxiInfo 中包含的列表中:

public ActionResult Index()
{
var taxi1 = new TaxiInfo() { Fare = 20.2, Distance = 15, Driver = "Billy", StartLocation = "Perth", EndLocation = "Brisbane" };
var taxi2 = new TaxiInfo() { Fare = 2339.2, Distance = 1500, Driver = "Smith", StartLocation = "Perth", EndLocation = "America" };

return View(new TaxiInfoSet(taxi1,taxi2));
}

View 的代码如下:

@model Taxi.Models.TaxiInfoSet
@{
ViewBag.Title = "Index";
}

<h2>Index</h2>

@foreach(var TaxiInfo in Model.TaxiInfoList){
<form>
<h1>Cost: $@TaxiInfo.Fare</h1>
<h2>Distance: @(TaxiInfo.Distance) km</h2>
<p>
Our diver, @TaxiInfo.Driver will take you from @TaxiInfo.StartLocation to @TaxiInfo.EndLocation
</p>
@Html.ActionLink("Home","Booking",TaxiInfo)
</form>
}

ActionLink 负责重定向到 Home Controller 的预订操作(并传入适当的 TaxiInfo 对象),其定义如下:

    public ActionResult Booking(TaxiInfo Taxi)
{
return View(Taxi);
}

这将返回以下 View :

@model Taxi.Models.TaxiInfo

@{
ViewBag.Title = "Booking";
}

<h2>Booking For</h2>
<h1>@Model.Driver, going from @Model.StartLocation to @Model.EndLocation (a total of @Model.Distance km) for $@Model.Fare</h1>

视觉之旅:

The Index view

The Booking view

关于asp.net-mvc - MVC4 将模型从 View 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16339398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com