如何将多个值传递给ajax?

时间:2014-04-17 13:33:57

标签: javascript ajax html5 asp.net-mvc-4

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

Controller:

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

            return form.username;

    }

AJAX:

 $("#btnSaveForm").click(function (event) {
        event.preventDefault();

        $('#Result2').html("<img src='/Images/loading.gif' />");


        $.post($("#frmform").attr("action"), $("#frmform").serialize(), function (result) {
            if (result != null) {
                $('#Result2').html(result);
            }
        });
    });

1 个答案:

答案 0 :(得分:1)

您只需返回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>

result参数是您在控制器中返回的json对象。

希望它有所帮助!