[英]How do I pass the data from my View to the controller?
我有一个礼宾应用程序,用户将在其中注册车辆的进出,注册一个条目我使用两个表,用户通过车牌咨询员工并检查他是否已注册,是的我允许他输入一个他的另一个表,但我找不到将此数据传递给 controller 并将其插入数据库的方法,也就是说,如何从我的View
中获取数据? 以及如何将数据输入数据库? 按照显示表单的视图中的代码和 Controller...
public ActionResult Buscar(string texto)
{
VeiculosDB vb = new VeiculosDB();
var placa = vb.VEICULOGERAL.Where(p => p.PLACA == texto);
return View(placa);
}
在我的 plate 变量中,我有正在显示的数据,但是我将如何插入这些数据?
@model IEnumerable<Portaria.Models.VEICULOGERAL>
@{
ViewBag.title = "Chegada";
}
<div class="panel-body">
@using (Html.BeginForm("Buscar", "Portarias", FormMethod.Get))
{
<input type="text" class="form-control" name="texto" placeholder="Placa..." />
<div class="form-group">
<div class="">
<input type="submit" value="Buscar" class="btn btn-default" name="texto" style="background-color:aliceblue" />
</div>
</div>
}
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.TIPOVEICULO)
</th>
<th>
@Html.DisplayNameFor(model => model.MARCA)
</th>
<th>
@Html.DisplayNameFor(model => model.ANOMOD)
</th>
<th>
@Html.DisplayNameFor(model => model.ANOFAB)
</th>
<th>
@Html.DisplayNameFor(model => model.VEICULO)
</th>
<th>
@Html.DisplayNameFor(model => model.COR)
</th>
<th>
@Html.DisplayNameFor(model => model.UNIDADE)
</th>
<th>
@Html.DisplayNameFor(model => model.ASSOCIADO)
</th>
<th hidden>
@Html.DisplayNameFor(model => model.CODMARCA)
</th>
<th hidden>
@Html.DisplayNameFor(model => model.CODVEICULO)
</th>
<th hidden>
@Html.DisplayNameFor(model => model.MATRICULA)
</th>
<th hidden>
@Html.DisplayNameFor(model => model.SITUACAO)
</th>
<th hidden>
@Html.DisplayNameFor(model => model.DATAINICIAL)
</th>
<th hidden>
@Html.DisplayNameFor(model => model.DATAFINAL)
</th>
<th hidden>
@Html.DisplayNameFor(model => model.STATUSPRI)
</th>
<th hidden>
@Html.DisplayNameFor(model => model.DESCSTATUSPRI)
</th>
<th hidden>
@Html.DisplayNameFor(model => model.STATUSSEC)
</th>
<th hidden>
@Html.DisplayNameFor(model => model.DESCSTATUSSEC)
</th>
<th hidden>
@Html.DisplayNameFor(model => model.DATAORDEM)
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.TIPOVEICULO)
</td>
<td>
@Html.DisplayFor(modelItem => item.MARCA)
</td>
<td>
@Html.DisplayFor(modelItem => item.ANOMOD)
</td>
<td>
@Html.DisplayFor(modelItem => item.ANOFAB)
</td>
<td>
@Html.DisplayFor(modelItem => item.VEICULO)
</td>
<td>
@Html.DisplayFor(modelItem => item.COR)
</td>
<td>
@Html.DisplayFor(modelItem => item.UNIDADE)
</td>
<td>
@Html.DisplayFor(modelItem => item.ASSOCIADO)
</td>
<td hidden>
@Html.DisplayFor(modelItem => item.CODMARCA)
</td>
<td hidden>
@Html.DisplayFor(modelItem => item.CODVEICULO)
</td>
<td hidden>
@Html.DisplayFor(modelItem => item.MATRICULA)
</td>
<td hidden>
@Html.DisplayFor(modelItem => item.SITUACAO)
</td>
<td hidden>
@Html.DisplayFor(modelItem => item.DATAINICIAL)
</td>
<td hidden>
@Html.DisplayFor(modelItem => item.DATAFINAL)
</td>
<td hidden>
@Html.DisplayFor(modelItem => item.STATUSPRI)
</td>
<td hidden>
@Html.DisplayFor(modelItem => item.DESCSTATUSPRI)
</td>
<td hidden>
@Html.DisplayFor(modelItem => item.STATUSSEC)
</td>
<td hidden>
@Html.DisplayFor(modelItem => item.DESCSTATUSSEC)
</td>
<td hidden>
@Html.DisplayFor(modelItem => item.DATAORDEM)
</td>
</tr>
}
</table>
您正在使用带有 GET 方法的提交表单机制。 这不合逻辑。
GET === retrieve something from server
POST/PUT === send something to server
所以关于你的情况只是改变
using (Html.BeginForm("Buscar", "Portarias", FormMethod.Get))
到
using (Html.BeginForm("Buscar", "Portarias", FormMethod.Post))
由于您正在使用此语句
@model IEnumerable<Portaria.Models.VEICULOGERAL>
您的视图将根据上述模型的值进行填充。
将 Buscar ActionResult 拆分为[HttpGet]
和[HttpPost]
方法。 使用[HttpGet]
您将从数据中检索带有 controller 的数据以供查看。 使用[HttpPost]
操作,您将从视图检索数据到数据库。
首先全局定义你的 db object(在操作方法之外):
VeiculosDB vb = new VeiculosDB();
在您看来,使您的 Form 方法像这样“发布”:
using (Html.BeginForm("Buscar", "Portarias", FormMethod.Post))
在 beginForm 中,您可以使用带有提交类型的按钮,如下所示:
<button type="submit" class="btn btn-primary">Add</button>
它会自动发送数据到[HttpPost]
动作。
您的 [HttpPost] 操作可以是这样的:
[HttpPost]
public ActionResult Buscar(Vehicle v)
{
vb.Carname.Add(v); //vb from your global db object that I mentioned above.
vb.SaveChanges();
return RedirectToAction("index");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.