【问题标题】:Using jQuery to post back to a controller使用 jQuery 回发到控制器
【发布时间】:2026-01-04 22:35:02
【问题描述】:

我正在使用 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
}

任何帮助将不胜感激。

谢谢。

【问题讨论】:

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


    【解决方案1】:

    我认为这应该可行:

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

    【讨论】:

    • 这正是我想要的。谢谢。
    【解决方案2】:

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

    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);
    }
    

    【讨论】:

    • 感谢您的回复,这是另一种很好的方式。
    【解决方案3】:

    除了grega的回答,如果你想从action方法返回一些数据并显示给用户,你也可以使用回调函数。

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

    【讨论】: