Javascript 如何将多个值传递给ajax?

Javascript 如何将多个值传递给ajax?,javascript,ajax,html,asp.net-mvc-4,Javascript,Ajax,Html,Asp.net Mvc 4,现在我有一个值被传递并返回到一个文本框。我想添加多个文本框,并将所有值从控制器传递到ajax函数,以便在加载页面时显示在文本框中 Controller: public string GetFormData() { //using Linq query and EF Form form = db.Forms.Find(1); if (form == null) { return "";

现在我有一个值被传递并返回到一个文本框。我想添加多个文本框,并将所有值从控制器传递到ajax函数,以便在加载页面时显示在文本框中

Controller:

    public string GetFormData()
    {
       //using Linq query and EF
        Form form = db.Forms.Find(1);
        if (form == null)
        {
            return "";
        }
        else

            return form.username;

    }
阿贾克斯:

$(“#btnSaveForm”)。单击(函数(事件){
event.preventDefault();
$('#Result2').html(“”);
$.post($(“#frmform”).attr(“操作”),$(“#frmform”).serialize(),函数(结果){
如果(结果!=null){
$('#Result2').html(结果);
}
});
});

您只需要返回JSON结果。考虑这个简单的例子:

型号

public class JSONTestModel
{
   public string Name { get; set; }
   public bool IsMarried { get; set; }
   public int Age { get; set; }
}
控制器

    public ActionResult TestJSON()
    {
        var model = new JSONTestModel()
        {
            Name = "John Smith",
            IsMarried = true,
            Age = 35
        };

        return View(model);
    }

    [HttpPost]
    public ActionResult TestJSON(JSONTestModel model)
    {
        // YOUR CODE HERE

        return Json(model);
    }
请注意,post方法返回JSON结果。这将序列化传递给Json的对象

查看

@using (Html.BeginForm())
{ 
    @Html.EditorForModel()

    <input id="save-data" type="button" value="Save" />
}

<script type="text/javascript">
    $(function () {
        $('#save-data').click(function () {
            $.post($("form").attr("action"), $("form").serialize(), function (result) {
                if (result != null) {
                    alert('Name - ' + result.Name);
                    alert('IsMarried - ' + result.IsMarried);
                    alert('Age - ' + result.Age);
                }
            });
        });
    });
</script>
@使用(Html.BeginForm())
{ 
@Html.EditorForModel()
}
$(函数(){
$(“#保存数据”)。单击(函数(){
$.post($(“表单”).attr(“操作”),$(“表单”).serialize(),函数(结果){
如果(结果!=null){
警报('Name-'+result.Name);
警报('IsMarried-'+result.IsMarried);
警报(“年龄-”+结果.年龄);
}
});
});
});
result
参数是您在控制器中返回的json对象


希望有帮助

如果将新的文本字段放在
标记中,则代码仍然有效。你需要在你的控制器中捕获它们。是的,它确实有效,但我想知道如何为不同的文本框字段向ajax传递不同的值如果你想在ajax中以POST的形式发送自定义字段,你可以这样尝试:
$.POST($(“#frmform”).attr(“action”),{'field1':$(“#field1”).val(),'field2':$(“#field1”).val(),函数(结果){…
@using (Html.BeginForm())
{ 
    @Html.EditorForModel()

    <input id="save-data" type="button" value="Save" />
}

<script type="text/javascript">
    $(function () {
        $('#save-data').click(function () {
            $.post($("form").attr("action"), $("form").serialize(), function (result) {
                if (result != null) {
                    alert('Name - ' + result.Name);
                    alert('IsMarried - ' + result.IsMarried);
                    alert('Age - ' + result.Age);
                }
            });
        });
    });
</script>