使用JQuery将值发布到MVC操作

时间:2014-05-27 10:30:02

标签: jquery asp.net-mvc

我有以下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的另一种方法?

感谢。

5 个答案:

答案 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>,因此您只能访问GETPOST。 html表单默认methodPOST。因此,我们需要明确指定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/