Posteriormente a mirar en varios repositorios y foros de internet al concluir hemos dado con la resolución que te enseñamos a continuación.
Solución:
como eso
[HttpPost]
public void Index(String address)
TempData["address"] = address;
RedirectToAction("Index");
lo ves en blanco porque estás redirigiendo RedirectToAction("Index");
y almacenando datos en TempData y no los estás usando en el índice Obtener método
[HttpGet]
public async Task Index()
// I fetch the info from DB here put it inside ViewBag and call the view
// you must check for the temp data
if (!string.IsNullOrWhiteSpace(TempData["address"].ToString()))
ViewBag["result"] = TempData["address"];
//and use you viewbag data in the view
return View();
ese mecanismo del que te hablé…
si tengo una entidad de Dirección
public class Address
public int Id get; set;
public string Street get; set;
public string House get; set;
public int Floor get; set;
y estas son las acciones del controlador AddressController
[HttpGet]
public ActionResult Index()
var model = new SearchAddressesViewModel();
// you can here also fetch all the addresses in your db ...
//but this is not a good approach also, but if you need to do that it's easy
// fetch data base and get all addresses
//model.AddressesFound = db.Addresses.Select(a => new AddressModel
//
// Street = a.Street,
// House = a.House,
// Floor = a.Floor
//).ToList();
return View(model);
[HttpPost]
public ActionResult Index(SearchAddressesViewModel model)
if (!ModelState.IsValid)
return View(model);
// fetch data base and get addresses based on the search criteria in
//model.SearchCriteria
// for example:
//var addresses = db.Addresses.Where(a => a.Street == model.SearchCriteria);
//add found addresses to model
//model.AddressesFound = addresses.Select(a => new AddressModel
//
// Street = a.Street,
// House = a.House,
// Floor = a.Floor
//).ToList();
return View(model);
y aquí está mi vista Index.cshtml
@model SearchAddressesViewModel
@using (Html.BeginForm("Index", "Address", FormMethod.Post))
@Html.LabelFor(m => m.SearchCriteria);
@Html.TextBoxFor(x=>x.SearchCriteria);
@Html.ValidationMessageFor(m => m.SearchCriteria, "");
@if (Model.AddressesFound != null)
Street
House
Floor
@foreach (var item in Model.AddressesFound)
@item.Street
@item.House
@item.Floor
y aquí está el modelo de vista que usé SearchAddressesViewModel
y AddressModel
public class SearchAddressesViewModel
[Required]
[Display(Name = "Search for address")]
public string SearchCriteria get; set;
public IList AddressesFound get; set;
public class AddressModel
public string Street get; set;
public string House get; set;
public int Floor get; set;
También puedes usar la vista parcial para AddressModel
en la vista basada en su caso.
Espero que hayas entendido mi punto… gracias
Al final de la post puedes encontrar las reseñas de otros gestores de proyectos, tú incluso tienes la libertad de insertar el tuyo si te gusta.