gpt4 book ai didi

c# - 如何将列表从 View 发送到 Controller MVC

转载 作者:行者123 更新时间:2023-12-05 08:09:32 24 4
gpt4 key购买 nike

我有 View 模型:

public class AvailableTimesViewModel
{
public AvailableTimesViewModel() { }

public AvailableTimesViewModel(List<DateTime> list)
{
availableTimesList = new List<DateTime>();
if (list != null && list.Any())
{
foreach (var l in list)
{
availableTimesList.Add(l);
}
}
}

public List<DateTime> availableTimesList { get; set; }
}

我的看法:

@model ViewModels.AvailableTimesViewModel
@{
ViewBag.Title = "AvailableTimes";
}
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">

List<DateTime>avTimes=new List<DateTime>
@for (var i = 0; i < Model.availableTimesList.Count; i++)
{
<tr>
<td>
@Html.HiddenFor(x => x.availableTimesList[i])
@Model.availableTimesList[i].TimeOfDay
@Html.ActionLink("Book", "BookVisit", new { date = Model.availableTimesList[i].TimeOfDay, avTimes = Model.availableTimesList },null) |
@Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
</td>

</tr>
}
</table>

和 Controller :

public ActionResult BookVisit(DateTime date,List<DateTime> avTimes)
{
return View();
}

问题是:如何将第二个参数从 ActionLink(avTimes=Model.availableTimesList) 发送到 Controller 。换句话说 - 如何将 View 中呈现的列表发送到 Controller 。

最佳答案

首先,在将它作为路由数据值传递之前,您不需要初始化或定义 avTimes。不需要这一行:

List<DateTime>avTimes = new List<DateTime>

话虽如此,您不能将集合作为路由数据值传递 - 它不起作用,而且无论如何都不是最佳实践。

由于 @Html.ActionLink 生成了类似 http://domainname.com/bookvisit/book?abc=1&bcd=ldf&ctf=5 的链接,我不认为在 url 中附加完整的列表值是一种很好的做法。

您尝试做的事情可以通过这种方式实现:

@{var myObjectWrapper = new MyObjectWrapper(){Data = @Model.availableTimesList };}

@Html.Action("Book", "BookVisit",
new { date = Model.availableTimesList[i].TimeOfDay, avTimes = myObjectWrapper } ,null)

还有你的 Action 方法:

public ActionResult BookVisit(DateTime date, MyObjectWrapper  avTimes)
{
vat myList = avTimes.Data;
return View();
}

希望对您有所帮助。

关于c# - 如何将列表从 View 发送到 Controller MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35610074/

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