Мне нужно отфильтровать некоторый список с помощью ввода от пользователя. Я создал представление и использовал столбцы, которые он генерировал автоматически. Нет проблем с колонкой Codigo, но с Cedula или Email, она не работает, и мне нужно использовать текстовые поля, которые работают.
Buscar expediente Solicitante por celuda: @Html.TextBox("Cedula")<br/>
Buscar expediente funcionario por celuda: @Html.TextBox("Email")<br />
Вот код моего контроллера. Когда я помещаю что-то в текстовое поле Codigo, оно получает значение без проблем, но когда я делаю то же самое с Cedula или Email, оно становится только нулевым. Есть идеи, что происходит?
[HttpPost]
public ActionResult BuscarExpediente(int? Codigo , int? Cedula, string Email)
{
//Expediente expediente = db.Expediente.Find(id);
//var expediente = db.Expediente.SingleOrDefault(e => e.Codigo == id);
//si me dan el id de expediente lo busco de esta forma
if ((Codigo != null) &&(Cedula == null) &&(Email == null))
{
//var expediente = db.Expediente.Where(E => E.Codigo == Codigo).SingleOrDefault();
//return View(expediente);
TempData["idExpedienteBuscar"] = Codigo;
return RedirectToAction("ExpedientesPorId");
}
//si me dal la cedula de un solicitante busco de esta forma
if((Cedula != null)&& (Email == null)&& (Codigo == null))
{
TempData["ExpedientesCedulaSolicitante"] = Cedula;
return RedirectToAction("ExpedientesPorCedulaSolicitante");
}
//si me dan un funcionario busco de esta forma
if((Email != null)&& (Codigo == null) && (Cedula == null))
{
TempData["ExpedienteBuscarFuncionarioID"] = Email;
return RedirectToAction("ExpedientesPorFuncionario");
}
//si no me dan nada busco de estra otra
else
{
//que de el mensaje de que solo se puede insertar un campo de busqueda
//hay que poner en el view un label o algo para tirar el msj
}
//ViewBag.FechInicio = expediente.FechaCreacion;
//ViewBag.Tramite = expediente.Tramite.Titulo;
//ViewBag.Funcionario = expediente.Funcionario.Nombre;
return View();
}
Вот код вида
@model Entrega02Programacion03.Models.Expediente
@{
ViewBag.Title = "BuscarExpediente";
}
<h2>BuscarExpediente</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Expediente</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Codigo, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Codigo, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Codigo, "", new { @class = "text-danger" })
</div>
</div>
@* Buscar expediente Solicitante por celuda: @Html.TextBox("Cedula")<br/>
Buscar expediente funcionario por celuda: @Html.TextBox("Email")<br />*@
<div class="form-group">
@Html.LabelFor(model => model.Solicitante.Cedula , htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Solicitante.Cedula, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Solicitante.Cedula, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Funcionario.Email, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Funcionario.Email, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Funcionario.Email, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.abierto, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.abierto, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.abierto, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Buscar Expediente" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>