Вызов $ .post () не будет работать, поскольку он основан на Ajax. Поэтому для этой цели необходимо использовать гибридный метод.
Ниже приводится решение, которое работает для меня.
Шаги:
1. Создайте URL для href, который вызывает метод с URL и параметром
2. Вызвать обычный POST, используя метод JavaScript
Решение:
В .cshtml:
<a href="javascript:(function(){$.postGo( '@Url.Action("View")', { 'id': @receipt.ReceiptId } );})()">View</a>
Примечание: анонимный метод должен быть заключен в (....) ()
т.е.
(function() {
//code...
})();
postGo определяется ниже в JavaScript.
Отдых прост ..
@Url.Action («Просмотр») создает URL для вызова
{'id': @ receive.ReceiptId} создает параметры как объект, который в свою очередь преобразуется в поля POST в методе postGo. Это может быть любой параметр, как вам требуется
В JavaScript:
(function ($) {
$.extend({
getGo: function (url, params) {
document.location = url + '?' + $.param(params);
},
postGo: function (url, params) {
var $form = $("<form>")
.attr("method", "post")
.attr("action", url);
$.each(params, function (name, value) {
$("<input type='hidden'>")
.attr("name", name)
.attr("value", value)
.appendTo($form);
});
$form.appendTo("body");
$form.submit();
}
});
})(jQuery);
Ссылочные URL, которые я использовал для postGo
Не-ajax GET / POST с использованием jQuery (плагин?)
http://nuonical.com/jquery-postgo-plugin/