首页 > 解决方案 > 提交表单并重定向后,MVC5 无法使用 ajax 获取 php api

问题描述

我正在使用 MVC5。想要提交表单,然后将所有输入值传递给 php api。

如果我使用表单提交我的输入,将值传递给 php api 并且不重定向到其他操作,它将起作用。

但是如果我在提交表单后重定向到索引,它将失败。

提交后我必须重定向到索引,但不知道如何修复。

我已经测试了我的 api 并且它有效。

这是html视图:

<form  id="registerForm" method="post" action="~/OverTime/Add">                                   
    <input type="text" class="form-control" id="OverTime_Description" name="OverTime_Description" />
    <input class="form-control" id="DateStart" name="DateStart" type="text"/> 
    <button onclick="log()" id="submit" type="submit">add</button>
</form>

这是 ajax php api:

function log() {
    var OverTime_Description = $('#OverTime_Description').val();
    var DateStart = $('#DateStart').val();

        if (OverTime_Description != "" && DateStart != "") {
            $.ajax({
                url: 'https://severip/lineMsg.php?Group=101&Message=' + OverTime_Description + ":" + DateStart,
                type: 'GET',
                success: function (data) {

                },
                error: function () {

                }

            });
        }
}

传递两个输入文本值,其 ID 为 OverTime_Description 和 DateStart。

我在 OverTime crontroller 中的重定向:

public ActionResult Add()
{
    try
    {
        ViewBag.Overtimess = OverTimeRepository.GetCollections().ToList();
        ViewBag.Members = MemberRepository.GetCollections().ToList();
        if (Request.Form.Count > 0)
        {
            OverTime _overTime = new OverTime();
            _overTime.OverTime_Description = Request.Form["OverTime_Description"];
            _overTime.OverTime_StartDate = DateTime.Parse(Request.Form["DateStart"]);
            return RedirectToAction("Index");
        }
        return View(OverTimeRepository.GetCollections());
    }
    catch
    {
        return RedirectToAction("Index", "Error");
    }
}

标签: c#asp.net-mvc

解决方案


推荐阅读