单击按钮后缺少我的列表变量数组



我没有DB,而是DB我必须列出数组,我有一个表,当我想编辑驱动程序的详细信息时,我单击"编辑",之后显示更改为包含详细信息的页面,之后我可以更改详细信息并单击保存按钮,我的问题是单击按钮"保存"后,我的数组列表错过了,我在MVC中不是很好, 但我尽力了!如果有人看到我做错了什么,请告诉我并解释,谢谢

我的控制器

public class DriverTaxiController : Controller
{
static  List<Drivers> Driver = new List<Drivers>();
public static  int numLine = -1;
// GET: DriverTaxi
public ActionResult List()
{
Driver.Add(new Drivers() { Line = 1, NumberLicens = "123456", FirstName = "Evgeny", LastName = "Ryvkin", PhoneNumber = "0546819725", StartWork = "12/10/17", DateCheckEyes = "13/10/17"});
Driver.Add(new Drivers() { Line = 2, NumberLicens = "123457", FirstName = "Moshe", LastName = "Kohen", PhoneNumber = "0546819725", StartWork = "12/10/17", DateCheckEyes = "13/10/17" });
Driver.Add(new Drivers() { Line = 3, NumberLicens = "123458", FirstName = "Dana", LastName = "Multy", PhoneNumber = "0546819725", StartWork = "12/10/17", DateCheckEyes = "13/10/17" });
ViewBag.Drivers = Driver;
return View();
}

public ActionResult MyAction(int  id=0)
{
for(int i = 0; i < Driver.Count; i++)
{
if(Driver[i].Line == id)
{
ViewBag.nl = Driver[i].NumberLicens;
ViewBag.fn = Driver[i].FirstName;
ViewBag.ln = Driver[i].LastName;
ViewBag.phone = Driver[i].PhoneNumber;
ViewBag.start = Driver[i].StartWork;
ViewBag.eye = Driver[i].DateCheckEyes;
ViewBag.line = Driver[i].Line;
}
}
numLine = id;
return View();
}
[HttpPost]
public ActionResult Update()
{
if (ModelState.IsValid)
{
numLine--;
Driver[numLine].NumberLicens = Request.Form["NumberLicens"];
Driver[numLine].FirstName = Request.Form["FirstName"];
Driver[numLine].LastName = Request.Form["LastName"];
Driver[numLine].PhoneNumber = Request.Form["PhoneNumber"];
Driver[numLine].StartWork = Request.Form["StartWork"];
Driver[numLine].DateCheckEyes = Request.Form["DateCheckEyes"];
return View("List2");
}
else
{
return View("MyAction");
}
}

我的视图编辑,当我单击按钮时,我的参数没有保存在我的列表中,我不明白为什么

@using (Html.BeginForm("Update", "DriverTaxi"))
{
@Html.TextBoxFor(Model => Model.NumberLicens, new { @Value = @ViewBag.nl }) @Html.ValidationMessageFor(x => x.NumberLicens)
<br />
@Html.TextBoxFor(Model => Model.FirstName, new { @Value = @ViewBag.fn })
<br />
@Html.TextBoxFor(Model => Model.LastName, new { @Value = @ViewBag.ln })
<br />
@Html.TextBoxFor(Model => Model.PhoneNumber, new { @Value = @ViewBag.phone })
<br />
@Html.TextBoxFor(Model => Model.StartWork, new { @Value = @ViewBag.start })
<br />
@Html.TextBoxFor(Model => Model.DateCheckEyes, new { @Value = @ViewBag.eye })
<br />
@Html.HiddenFor(Model => Model.Line)
<input type="submit" value="Save" />
@Html.ValidationSummary()
}

我的表

<table class="table table-bordered table-responsive table-hover">
<tr>
<th>No.</th>
<th>Number Licens</th>
<th>Full Name</th>
<th>Phone Number</th>
<th>Start Work</th>
<th>Date Cheking the Eyes</th>
<th>Address</th>
<th>Email</th>
<th>Edit</th>
<th>Delete</th>
</tr>
@foreach (Drivers p in ViewBag.Drivers)
{
<tr>
<td>@p.Line</td>
<td>@p.NumberLicens</td>
<td>@p.FirstName &nbsp; @p.LastName </td>
<td>@p.PhoneNumber</td>
<td>@p.StartWork</td>
<td>@p.DateCheckEyes</td>

<td>
@Html.ActionLink("Edit", "MyAction", "DriverTaxi", new { id = p.Line }, null)
</td>
<td>addres</td>
<td>email</td>
<td><input id="Button2" type="submit" value="Delete" name="@p.NumberLicens" /></td>
</tr>
}`enter code here`

以及我的错误 在此处输入图像描述

只需将 ViewBag 分配添加到呈现视图的每个操作中即可。 像这样:

public ActionResult MyAction(int  id=0)
{
for(int i = 0; i < Driver.Count; i++)
{
if(Driver[i].Line == id)
{
ViewBag.nl = Driver[i].NumberLicens;
ViewBag.fn = Driver[i].FirstName;
ViewBag.ln = Driver[i].LastName;
ViewBag.phone = Driver[i].PhoneNumber;
ViewBag.start = Driver[i].StartWork;
ViewBag.eye = Driver[i].DateCheckEyes;
ViewBag.line = Driver[i].Line;
}
}
numLine = id;
ViewBag.Drivers = Driver; //TODO
return View();
}
[HttpPost]
public ActionResult Update()
{
if (ModelState.IsValid)
{
numLine--;
Driver[numLine].NumberLicens = Request.Form["NumberLicens"];
Driver[numLine].FirstName = Request.Form["FirstName"];
Driver[numLine].LastName = Request.Form["LastName"];
Driver[numLine].PhoneNumber = Request.Form["PhoneNumber"];
Driver[numLine].StartWork = Request.Form["StartWork"];
Driver[numLine].DateCheckEyes = Request.Form["DateCheckEyes"];
ViewBag.Drivers = Driver; //TODO
return View("List2");
}
else
{
ViewBag.Drivers = Driver; //TODO
return View("MyAction");
}
}

最新更新