我有以下JQuery代码,一旦点击提交按钮,就会从我的MVC 5 Razor View中的隐藏文本框中检索值。
$('#mySubmit').click(function() {
//Get the id to delete from the hidden field
var id = $('#item-to-delete').val();
window.location.href = "/CSurvey/Delete/" + id;
});
然后我想将此值发布到Controller中的HttpPost Action。我已经尝试过上面的代码,但它说它无法找到页面,我认为这是因为我重定向到Controller Action是不正确的。
[HttpPost]
public ActionResult Delete(int AssessorID)
{
//delete code
}
有没有人知道将值传递给Controller Action的另一种方法?
感谢。
答案 0 :(得分:3)
您可以尝试以下代码:
$.ajax({
type: "POST",
url: "/CSurvey/Delete",
contentType: "application/json; charset=utf-8",
data: {AssessorID=id},
success: function() { window.location.href = "to/where/you/like"},
});
答案 1 :(得分:2)
$("#DeleteBtn").click(function () {
$.ajax({
type: "POST",
url: "/CSurvey/Delete/",
data: { id: $("#id").val() }
}).done(function (msg) {
alert(msg);
location.reload();
});
})
您可以传递您的ID,然后使用Jquery删除。
答案 2 :(得分:1)
最好,您希望向服务器发送DELETE
请求。
但是,由于您使用的是<form>
,因此您只能访问GET
和POST
。 html表单默认method
为POST
。因此,我们需要明确指定GET
:
<form method="GET">
<input type="text" id="item-to-delete"/>
<input type="submit"/>
</form>
$('form').on('submit', function(e){
e.preventDefault(); // don't submit the form... yet
var $this = $(this),
id = $this.find('#item-to-delete').val();
if(!+id) return; // get the id and make sure it's an integer
$this.prop({ action: '/CSurvey/Delete/' + id }); // set the form action
$this.submit(); // submit the form with the correct action
});
答案 3 :(得分:0)
试试这个
代替post
使用get
,因为您没有发布任何数据
[HttpGet]
public ActionResult Delete(int AssessorID)
{
//delete code
}
答案 4 :(得分:0)
您可能需要使用:$('#form')。serialize()
请参阅此处:http://www.yourinspirationweb.com/en/how-and-when-to-use-jquerys-serialize-method/