Не хотите перенаправлять ту же страницу после отправки в MVC
В настоящее время частичная отправка осуществляется с помощью AJAX после нажатия кнопки submit в главном окне. Но я не хочу, чтобы тот же самый частичный перенаправлялся после подачи. Как я могу избавиться от этого? Я новичок в MVC, поэтому у меня не так много идей. Я просто вернул частичные значения в [HttpPost] ActionResult. Я думаю, что это не совсем правильный способ сделать это. Пожалуйста, веди меня.
Что я уже пробовал:
Контроллер
[HttpPost] public ActionResult Home(ClsAA clsAA) { ModelState.Clear(); if (Id == "Z01") { return PartialView("~/Views/Home/_P.cshtml", clsAA); } else if (Id == "P02") { return PartialView("~/Views/Home/_I.cshtml", clsAA); } return PartialView(); }
общий вид
<table> <tr> <th>@Html.DisplayNameFor(m => m.ProductName)</th> <th>@Html.DisplayNameFor(m => m.ProductDetail)</th> <th>@Html.DisplayNameFor(m => m.ProductCost)</th> </tr> @foreach (var item in Model) { <tr> <td>@Html.DisplayFor(modelItem => item.ProductName)</td> <td >@Html.DisplayFor(modelItem => item.ProductDetail)</td> <td>@Html.DisplayFor(modelItem => item.ProductCost)</td> <td><input class="search btn-default" type="button" value="Select" data-assigned="@item.ProductCode"/></td> </tr> } </table> <div id="MyReports"> @using (Html.BeginForm("Home", "Home", FormMethod.Post, new { id = "myform" })) { <div id="mypartial"></div> <button type="submit" id="submit">Run</button> } </div>
Это как частичные нагрузки
$('.search').click(function () { var id = $(this).data('assigned'); var route = '@Url.Action("PartialView", "Home")?id=' + id; $('#mypartial').load(route) });
частичное представление
<div class="PContainer"> <label> @Html.RadioButtonFor(m => m.HDT, "H", new { @checked = "checked" })H </label> <label> @Html.RadioButtonFor(m => m.HDT, "T")T </label> </div> <div class="P"> <div id="H" class="PHT"> @Html.TextBoxFor(m => m.txtH) </div> <div id="T" class="PHT"> @Html.TextBoxFor(m => m.txtT) </div> </div>
Скрипты для отправки
$(document).ready(function () { var url = '@Url.Action("Home")'; $('#myform').submit(function () { if (!$(this).valid()) { return; } $.post(url, $(this).serialize(), function (response) { debugger; $('#mypartial').html(response); $("#myModal").modal('show'); }); return false; }) });