Mi proyecto usa ASP.NET MVC. Tengo un formulario en mi archivo cshtml en el que, si lo envío, llama a una acción específica en el controlador. No quiero que el nombre de la acción aparezca en la URL. Entonces usé window.history.pushState para cambiar la URL a la predeterminada. Pero en realidad, cuando presiono el botón de enviar en el formulario, la URL real con el nombre de la acción aparece en un instante en la barra de direcciones antes de cambiar a la especificada. ¿Cómo soluciono este problema, por favor? Gracias :)
Cshtml
@using (Html.BeginForm("Step2", "Restaurants", FormMethod.Post)) { @Html.AntiForgeryToken() <div class="container"> <div class="form-horizontal"> <div class="input-group"> @Html.TextBoxFor(m => m.FoodName, new { @class = "form-control}) </div> <button type="submit" class="btn nextBtn">Next </button> </div> </div> }Controlador de Restaurantes
Restaurant res = new RestaurantDetails(); public ActionResult Index() { ViewBag.Step = 1; ViewBag.Title = "MAIN COURSE"; mymodel.Restaurant = RestaurantList.Where(x => x.Id == “1234”.FirstOrDefault(); return View(res); } [HttpPost] [ValidateAntiForgeryToken] public ActionResult Step2(Food foodItem) { ViewBag.Step = 2; ViewBag.Title = "MAIN COURSE"; }Índice.cshtml
@if (ViewBag.Step == 1) { @Html.Partial("~/Views/Menu/_Starters.cshtml") } @if (ViewBag.Step == 2) { @Html.Partial("~/Views/Menu/P artials/_MainCourse.cshtml", Model) }