繁体   English   中英

如何将多个值传递给ajax?

[英]how to pass multiple values to ajax?

现在,我有一个值正在传递并返回到文本框。 我想添加多个文本框,并将所有值从控制器传递给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);
            }
        });
    });

您只需要返回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对象。

希望能帮助到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM