3

我的 RedirectToAction 返回 HTTP 404,除了控制器、动作和视图都在那里,拼写正确并带有适当的大写字母。我在 SubscriberController 中,我想在 CreateTestController 中调用一个操作。

这是我的初始网址:

http://www.localdomain.com/Subscriber/AuthUser

这将启动其中包含多种表单的页面,我用于此调用的页面如下:

<form id="btnform7" action="LaunchTestPortal" method="post">
    <input name="__RequestVerificationToken" id="antiforge7" type="hidden" value="rzTdAi...aj501">
    <button title="Create, Edit or Review Training" class="ui...active" id="btnLaunchTestPortal" role="button" style="width: 13em; height: 22px; margin-bottom: 10px;" type="submit">
        <span class="ui-text-only">Create, Edit or Review Training</span>
    </button>
</form>

这成功地在 SubscriberController 中调用了这个方法

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult LaunchTestPortal()
{
    return RedirectToAction("CreateTestPortal", "CreateTest");
}

这是我想在 CreateTestController 中调用的方法

[HttpPost]
[ValidateAntiForgeryToken]
public ViewResult CreateTestPortal()
{
    ...
}

调用后,这是它返回的地址http://www.localdomain.com/CreateTest/CreateTestPortal

除了页面结果是 HTTP 404 not found。所有的零件都在那里。它只是控制器A中的重定向不会调用控制器B中的方法

4

1 回答 1

0

我将评论放在我的更改中,以便您学习。

public class SubscriberController : Controller
{
    //
    // GET: /Subscriber/
    public ActionResult AuthUser()
    {
        return View();
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult LaunchTestPortal()
    {
        return RedirectToAction("CreateTestPortal", "CreateTest");
    }
}

public class CreateTestController : Controller
{
    //removed two attributes
    public ViewResult CreateTestPortal()
    {
        var ap = "dh";
        return View();
    }
}

AuthUser.cshtml

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>AuthUser</title>
</head>
<body>
    @*added Subscriber below*@
    <form id="btnform7" action="/Subscriber/LaunchTestPortal" method="post">
        @*changing next line*@
        @Html.AntiForgeryToken()
        @*<input name="__RequestVerificationToken" id="antiforge7" type="hidden" value="rzTdAi...aj501">*@
        <button title="Create, Edit or Review Training" class="ui...active" id="btnLaunchTestPortal" role="button" style="width: 13em; height: 22px; margin-bottom: 10px;" type="submit">
            <span class="ui-text-only">Create, Edit or Review Training</span>
        </button>
    </form>
</body>
</html>

CreateTestPortal.cshtml

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>CreateTestPortal</title>
</head>
<body>
    <div> 
    </div>
</body>
</html>
于 2018-10-01T22:50:16.990 回答