【问题标题】:Form not redirecting to the action in cshtml表单未重定向到 cshtml 中的操作
【发布时间】:2021-04-17 12:35:26
【问题描述】:

我有一个显示我的应用程序页面的 .cshtml 文件。在应用程序中,有一个顶部菜单,其中有不同的按钮。代码是:-

<div id="top_menu">
    <form action="@Url.Action("Pause", new { sessionId = Model, schoolId = ViewData["SchoolId"] })" method="post">
        <button type="submit">Pause</button>
    </form>

    <button id="score_button" type="button" class="text-group">
        <span>Score:</span>
        <span style="font-size: 1.5em" data-bind="text: score"></span>
    </button>

    <span id="elapsed_time" class="text-group">
        <span>Time elapsed:</span>
        <span style="font-size: 1.5em" data-bind="text: time"></span>
    </span>

    <button type="button" onclick="SR.ERSIM.showInfo('info_resources')">
        <i class="fas fa-check"></i> Resources
    </button>

    <form action="@Url.Action("Instructions")" method="get" target="_blank">
        <button type="submit">
            <i class="far fa-life-ring"></i> Help
        </button>
    </form>
</div>

现在其他一切正常,但最后一个按钮“帮助”应该重定向到控制器的指令操作,但它总是重定向到控制器的索引操作。我无法弄清楚这个问题。如何重定向到指令操作?

我的控制器代码:-

[Route("Schools/{schoolId:int}/VC/EmergencyRoom")]
public EmergencyRoomController(IEmergencyRoomRepository emergencyRoomRepository,
    EmergencyRoomService emergencyRoomService, ISessionRepository sessionRepository)
{
    this.emergencyRoomRepository = emergencyRoomRepository;
    this.emergencyRoomService = emergencyRoomService;
    this.sessionRepository = sessionRepository;
}

[HttpGet("{sessionId:long}")]
[ResponseCache(NoStore = true)]
public async Task<IActionResult> Index(long sessionId, int schoolId)
{
    Sessions session = await this.sessionRepository.GetSessionAsync(sessionId, 
        this.User.GetUserId());
    if (session == null)
    {
        return NotFound();
    }
   
    ViewData["SchoolId"] = schoolId;
    return this.View(session.Id);
}

[HttpGet("Instructions")]
[AllowAnonymous]
public ViewResult Instructions()
{
    return this.View();
}

【问题讨论】:

  • 表单是否嵌套在另一个表单中?如果是这样,那不是合法的 HTML。
  • 你能在指令方法上放一个断点,看看它是否到达那个方法或指令方法。我得到目标 _bank 可能是删除该目标的罪魁祸首

标签: c# asp.net .net razor asp.net-core-mvc


【解决方案1】:

像这样更改帮助表单:

<form action="Instructions" method="get" target="_blank">
    <button type="submit">
        <i class="far fa-life-ring"></i> Help
    </button>
</form>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 2016-07-30
    相关资源
    最近更新 更多