表单提交时堆栈溢出 [英] Stack Overflow on form submit

查看:39
本文介绍了表单提交时堆栈溢出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在创建两个登录表单:Razor Page

页面模型Login.cshtml.cs如下

        public void OnGet()
        {
 
        }

        [BindProperty]
        public Admin Admin { get; set; }
        [BindProperty]
        public Member Member { get; set; }

        public IActionResult OnPostManager()
        {
            return RedirectToPage("../Index");
        }

        public IActionResult OnPostMember()
        {
            return RedirectToPage("../Index");
        }

这是Login.cshtml文件

<div class="col">

    <form method="post">
        <input type="hidden" asp-for="Admin.Id" />
        <input type="text" asp-for="Admin.Name" />
        <button type="button" asp-page_handler="Manager">Login</button>
    </form>

    <form method="post">
        <input type="hidden" asp-for="Member.Id" />
        <input type="text" asp-for="Member.Name" />
        <button type="button" asp-page_handler="Member">Login</button>
    </form>


</div>
问题是,当我单击成员的登录按钮时,它会成功重定向到索引页。 但当我点击管理员登录时,Web应用程序崩溃,并显示错误StackOverflow[Just the Keyword]。

我已尝试;

  1. 删除bin和obj。
  2. 删除IISExpress文件夹和.vs文件夹
  3. 重新启动Visual Studio
  4. 重新启动计算机
  5. 删除%TEMP%文件

但没有解决方案。

[注意:这是原始文件的简化代码,原始文件包含更多的css和图标]

推荐答案

    <form method="post" class="login-form">
                                    <div class="form-group">
                                        <div class="icon d-flex align-items-center justify-content-center"><span
                                                class="fa fa-user"></span></div>
                                        <input type="text" class="form-control" asp-for="FirstName" placeholder="FirstName"
                                            required>
                                    </div>
                                    <div class="form-group">
                                        <div class="icon d-flex align-items-center justify-content-center"><span
                                                class="fa fa-lock"></span></div>
                                        <input type="password" class="form-control" asp-for="LastName"
                                            placeholder="LastName" required>
                                    </div>
                                    <div class="form-group">
                                        <button type="submit" id="submitBtn"
                                            class="btn form-control btn-primary rounded submit px-3">Go!</button>
                                    </div>
                                </form>

    //Login.cshtml.cs
    
    [BindProperty]
    public string FirstName { get; set; }

    [BindProperty]
    public string LastName { get; set; }

public async Task<IActionResult> OnPostAsync()
        {
            LoginRequest request = new LoginRequest
            {
                FirstName = FirstName,
                LastName = LastName,
            };

            .
            .
            .
            
            if (..)
            {
                return RedirectToPage("./Home");
            }

            
            return Page();
        }

这篇关于表单提交时堆栈溢出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆