C# 如何简单地从索引页到索引类获取表单数据

C# 如何简单地从索引页到索引类获取表单数据,c#,asp.net,asp.net-core,C#,Asp.net,Asp.net Core,我已经创建了一个Razor Web应用程序,并将身份构建到我的项目中,如下所述: 如下面的代码所示,我在主页上有一个表单,显示您是否未登录,我需要将该表单数据输入到一个方法中,以便我可以处理它(它涉及谷歌地图api,但我已经解决了这一部分) 我尝试创建一个新模型(TestUser),描述我想要捕获的数据,并将其用作此页面的模型,然后在Index.cshtml.cs页面中创建一个方法,将表单数据绑定到该模型,并将数据写入调试,但没有显示任何结果,需要进一步测试(在该方法中放置断点)显示它甚至从未

我已经创建了一个Razor Web应用程序,并将身份构建到我的项目中,如下所述:

如下面的代码所示,我在主页上有一个表单,显示您是否未登录,我需要将该表单数据输入到一个方法中,以便我可以处理它(它涉及谷歌地图api,但我已经解决了这一部分)

  • 我尝试创建一个新模型(TestUser),描述我想要捕获的数据,并将其用作此页面的模型,然后在Index.cshtml.cs页面中创建一个方法,将表单数据绑定到该模型,并将数据写入调试,但没有显示任何结果,需要进一步测试(在该方法中放置断点)显示它甚至从未调用该方法
  • 我尝试过使用HTML POST表单,但我不知道处理该POST的c代码应该是什么样子
  • 尝试#1 Index.cshtml.cs

    public ActionResult CheckUser([Bind(“Email”、“Postcode”)]TestUser)
    {
    System.Diagnostics.Debug.WriteLine(user.Email);
    System.Diagnostics.Debug.WriteLine(用户邮政编码);
    返回页首(“/索引”);
    }
    
    Index.cshtml

    
    电子邮件地址
    密码
    注册
    
    尝试#2 Index.cshtml.cs

    ???
    
    Index.cshtml

    
    电子邮件地址
    密码
    注册
    
    在第一次尝试中,我希望它编写电子邮件和邮政编码进行调试,但什么也没有显示

    我无法很好地理解HTML POST表单,无法尝试第二次尝试


    最终目标是从主页上的表单中获取这些信息,并对其进行处理(例如,将其写入调试)

    然后您应该将这些信息放入包含列表中

        public ActionResult CheckUser([Bind(Include = "Email, Postcode")] TestUser user)
        {
    

    嗯,您的主要问题是您的输入没有
    name
    属性。虽然您可以只为它们添加一个
    name
    属性,但最好使用
    asp for
    来调用标记帮助程序,这些标记帮助程序可以为您生成正确的绑定名称

    <input asp-for="Email" class="form-control" placeholder="Email address" required autofocus>
    
    
    
    助手还将填写
    id
    type
    属性

    除此之外,不要使用
    Bind
    。这是一个好主意。相反,请使用视图模型,如果您只想允许编辑
    电子邮件
    后代码
    ,则只需将这些属性添加到视图模型类中。发布后,将发布视图模型中的值映射到实体的实例上(创建时为新,编辑时从数据库中提取新值)。

    您是否也需要name=“Email”和name=“Postcode”?我使用了您的第二个想法(我想)并为我现有的TestUser模型创建了一组新的Razor页面。如果我是正确的,那么生成的新页面将充当视图和控制器。然后,如果您没有登录,我让主页html中的代码将您重定向到其中一个视图。这是一个劣质的解决方案,但它是有效的。