使用jQuery回发到控制器

时间:2011-06-02 12:09:38

标签: c# javascript jquery asp.net-mvc-3 postback

我正在使用jQuery发回我的控制器,但我想知道如何在ActionResult中传递值作为参数。例如:

我有一个jQuery帖子:

$.post("Home\PostExample")

但我想在下拉菜单中添加一个值:

@Html.DropDownListFor(m => m.Example, Model.Example, new { @id = "exampleCssId" })

进入一个Actionresult:

[HttpPost]
public ActionResult PostExample(string myString)
{
    //TODO: Write contents of ActionResult
}

任何帮助都将不胜感激。

感谢。

3 个答案:

答案 0 :(得分:4)

我认为这应该有效:

$.post("Home/PostExample", { myString: $("#exampleCssId").val() } );

答案 1 :(得分:1)

这是我最近做过的一个例子:

function SaveNewGoal() {
    var data = { Name_E: $("#NewGoal #Name_E").val(),
        Name_F: $("#NewGoal #Name_F").val(),
        Desc_E: $("#NewGoal #Desc_E").val(),
        Desc_F: $("#NewGoal #Desc_F").val()
    };

    $.ajax({
        url: '@Url.Action("CreateJson", "Goal")',
        data: JSON.stringify(data),
        success: SaveNewGoalSuccess,
        error: SaveNewGoalError,
        cache: false,
        type: 'POST',
        contentType: 'application/json, charset=utf-8',
        dataType: 'json'
    });
}

function SaveNewGoalSuccess(data, textStatus, jqXHR) {
    $("#NewGoalContainer").hide();
    // reload the goal list
    ReloadGoals();
}

function SaveNewGoalError(jqXHR, textStatus, errorThrown) {
    $("#NewGoalResult").text("Error: " + jqXHR.responseText);
}

答案 2 :(得分:1)

添加到grega的答案,如果你想从action方法返回一些数据并将其显示给用户,你也可以使用回调函数。

 $.post("Home/PostExample", { myString: $("#exampleCssId").val() }, function(result){    
     alert(result);    
});