首页 > 解决方案 > Ajax PostBack:从控制器读取数据

问题描述

如何在我的 ajax 回发中从控制器读取数据?

我有一个 Razor 表格

@using (Html.BeginForm("CreateDocument", "Pages", FormMethod.Post, new { id = "createDocumentForm" }))
{
   ....
}

我在 JavaScript 中捕获了提交操作:

<script type="text/javascript">
    $(document).ready(function () {

        $("#createDocumentForm").submit(
            function () {
                showWaitMode();
                $.ajax({
                    data: ("#createDocumentForm").serialize, 
                    success: (e) => {
                        console.log(e);
                    },
                    error: (errorResponse) => {
                        alert(errorResponse)
                    }
                })
                return false;
            }
        );
    });
</script>

在我的控制器中,我点击了这个方法:

public ActionResult CreateDocument(NotatFletModel model)
{
    var reuslt = new
    {
        Staus = true,
        GoDocumentId = model.ContactId.ToString(),
        ErrorMessage = model.DocumentKindId,
    };

    return Json(reuslt);
}

但是在我的 Ajax 成功函数中,我想从我的控制器中获取数据。我希望它在我的参数 e 中,但它不是

简而言之:我如何进行 Ajax 发布并读取从控制器发回的数据

标签: ajaxasp.net-mvcrazor

解决方案


使用 ajax 签出我的 Form Post 代码

网页:

@using (Html.BeginForm("CreateDocument", "Pages", FormMethod.Post, new { id = "createDocumentForm" }))
{
....
}

查询:

 $("#createDocumentForm").submit(
        function (e) {
            showWaitMode();
            e.preventDefault(); 
            var form = $(this);
            var url = form.attr('action');
            $.ajax({
                url: url,
                type: 'POST',
                data: form.serialize(), // serializes the form's elements.
                success: function (data) {
                    console.log(data); // show response 
                },
                error: (errorResponse) => {
                    alert(errorResponse)
                }
            })
            return false;
        }
    );

控制器 :

 //You can Use FormCollection also to get data
 //public ActionResult CreateDocument(FormCollection fc) {
 [HttpPost]     
 public ActionResult CreateDocument(NotatFletModel model) {
 //your logic
 return Json(model, JsonRequestBehavior.AllowGet);
 }

推荐阅读