Чтобы опубликовать форму без отправки всей страницы, которая обновляет браузер, вам необходимо использовать Ajax / jQuery. Ухудшенное решение состоит в том, чтобы отправить всю страницу, как если бы вы использовали обычную форму.
Вот как я это делаю с помощью jQuery.
Html:
<div id="RequestButtonDiv">
<button id="RequestButton" name="Request" type="button">Request</button>
</div>
Это вызывает AddToCart на моем контроллере запросов, когда нажимается кнопка RequestButton. Ответ помещается внутри элемента RequestButtonDiv.
<script type="text/javascript">
$(document).ready(function () {
$('#RequestButton').click(function (event) {
$('#RequestButton').text('Processing...');
$('#RequestButton').attr('disabled', true);
submitRequest();
});
});
function submitRequest() {
$.ajax({
url: '<%: Url.Action("AddToCart", "Request", new { id = Model.RowId, randomId = new Random().Next(1, 999999) } ) %>',
success: function (response) {
// update status element
$('#RequestButtonDiv').html(response);
}
});
}
</script>
Действие контроллера:
public ActionResult AddToCart(int id)
{
var user = AccountController.GetUserFromSession();
user.RequestCart.AddAsset(id);
return View("~/Views/Assets/Details_AddToCart.ascx");
}
Контроллер возвращает частичное представление. Вместо этого вы также можете вернуть Content («некоторые вещи»).
Привет, если у вас есть вопросы или вам нужна дополнительная информация.