首页 > 解决方案 > Razor 表单仅提交一个输入字段

问题描述

我在 Razor Page 中创建了一个简单的表单,它将表单值发送回前端,但是当我在后端使用相同的值时,它们为空。

前端 后端

    <form method="POST" class="form form--login">
      <fieldset class="card card--login">
        <legend>Login</legend>

        <input aria-label="username" name="Username" type="text" title="Username can't be empty." placeholder="Username"
        class="input input--text" />

        <input aria-label="password" name="Password" type="password" title="Password is required." placeholder="Password"
        class="input input--text" />

        <input aria-label="Test" name="Test" type="datetime-local" title="Test is required." placeholder="Test"
        class="input input--text" />
      </fieldset>

      <button type="submit" class="button button--submit">Submit</button>
    </form>


@* Using this to check for values after form submission *@
@Model.Username
@Model.Password
@Model.Test
    public string Username { get; set; }
    public string Password { get; set; }
    public string Test { get; set; }

    Username = Request.Form["Username"];
    Password = Request.Form["Password"];
    Test = Request.Form["Test"];

    Console.WriteLine(Username, Password, Test);

标签: c#asp.net-corerazor-pages

解决方案


编辑您的 PageModel,如下所示:

 public class IndexModel : PageModel
{
  
    [BindProperty]
    public string Username { get; set; }
    [BindProperty]
    public string Password { get; set; }
    [BindProperty]
    public string Test { get; set; }

    public void OnGet()
    {
    }
    public IActionResult OnPost()
    {

        return Page();
    }
}

您的页面:

@page
@model IndexModel

<form method="POST" class="form form--login">
    <fieldset class="card card--login">
        <legend>Login</legend>

        <input aria-label="username" name="Username" type="text" title="Username can't be empty." placeholder="Username"
               class="input input--text" />

        <input aria-label="password" name="Password" type="password" title="Password is required." placeholder="Password"
               class="input input--text" />

        <input aria-label="Test" name="Test" type="datetime-local" title="Test is required." placeholder="Test"
               class="input input--text" />
    </fieldset>

    <button type="submit" class="button button--submit">Submit</button>
</form>
@Model.Username
@Model.Password
@Model.Test

测试结果:

在此处输入图像描述

有关更多详细信息,您可以了解这篇文章


推荐阅读