C# 从通过BindProperty传递的razor页面获取数据

C# 从通过BindProperty传递的razor页面获取数据,c#,.net-core,asp.net-core-mvc,razor-pages,C#,.net Core,Asp.net Core Mvc,Razor Pages,更新:我有两个Razor页面,在第一个页面我获得了个人信息,在第二个页面我将从第一个页面提交信息的人那里获得项目信息,在第二个页面(ProjectInformation table)我保存了与第一个页面(projectOwner table)相关的数据personId中的信息 更新结束 我在razorPage中传递“用户电子邮件”,就像这样 [BindProperty] public string OwnerEmail { get; set; } public IActionResu

更新:我有两个Razor页面,在第一个页面我获得了个人信息,在第二个页面我将从第一个页面提交信息的人那里获得项目信息,在第二个页面(ProjectInformation table)我保存了与第一个页面(projectOwner table)相关的数据personId中的信息

更新结束

我在razorPage中传递“用户电子邮件”,就像这样

  [BindProperty]
  public string OwnerEmail { get; set; }
  public IActionResult OnGet(string OwnerId)
    {
        OwnerEmail = OwnerId;
        return Page();
    }
@page
@model Sunn.Raz.Pages.Order.ProjectOrderModel
@using Sunn.Model
@{
ViewData["Title"] = "ProjectOrder";
}

<h4>ProjectOrder</h4>
    @Model.OwnerEmail
在这样的电视节目中

  [BindProperty]
  public string OwnerEmail { get; set; }
  public IActionResult OnGet(string OwnerId)
    {
        OwnerEmail = OwnerId;
        return Page();
    }
@page
@model Sunn.Raz.Pages.Order.ProjectOrderModel
@using Sunn.Model
@{
ViewData["Title"] = "ProjectOrder";
}

<h4>ProjectOrder</h4>
    @Model.OwnerEmail
@page
@模型Sunn.Raz.Pages.Order.ProjectOrderModel
@使用Sunn.Model
@{
ViewData[“Title”]=“ProjectOrder”;
}
项目订单
@Model.OwnerEmail
我在RasorPage中有UserEmail,现在当用户点击submit按钮时,我想再次看到电子邮件发送到OnPost()方法

  public async Task<IActionResult> OnPostAsync()
    {

        var ownerId = _context.ProjectOwners.Where(x => x.Email == OwnerEmail).Select(m => new { m.Id });
    }
公共异步任务OnPostAsync() { var ownerId=_context.ProjectOwners.Where(x=>x.Email==OwnerEmail)。选择(m=>new{m.Id}); } 但是userEmailNull, 如何在OnPostAsync()中拥有用户电子邮件(OwnerEmail)的价值? 更新2: 在Razor页面中访问我们的财产使用方式如下

<div class="form-group">
                    <label asp-for="ProjectOrder.ProjectOwnerId" class="control-label"></label>
                    <select asp-for="ProjectOrder.ProjectOwnerId" class="form-control" asp-items="ViewBag.ProjectOwnerId"></select>
                </div>

在“ProjectOwnerId”之前使用“ProjectOrder”是指

我在代码中设置了第一个答案,但在onPostAsync()中,“ProjectOwnerId”为零

 <input type="hidden" asp-for="OwnerEmail" />

在Razor页面上,提交表单时只显示
OwnerEmail
的值,但不发布其数据。尝试添加隐藏类型输入,以使其:

<form method="post">
    <h4>ProjectOrder</h4>
    @Model.OwnerEmail

    <input type="hidden" asp-for="OwnerEmail"/>

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

项目订单
@Model.OwnerEmail
提交
谢谢你的帮助 我确实喜欢这样,但我不确定这是最好的方式,但这是工作

  • 我在项目中定义BindProperty

    [BindProperty(SupportsGet=true)]

  • 填写OnGet()

    this.OwnerId=OwnerId

  • 在RazorPage中,您可以这样做

    @{Model.ProjectOrder.ProjectOwnerId=Model.OwnerId;}


  • 在所示示例中,您在哪里有
    UserEmail
    。当前状态下的问题也不完整,因此不清楚。我更新并描述了scenariofor razor视图但是在使用modelbinding的razor页面中working@sunny当我尝试使用razor页面时,它是有效的。但是我只有一个页面,而你有两个页面,这是不同的吗?你能解释更多关于你的代码吗?谢谢你的帮助,我更新了代码,并描述了绑定属性仍然不起作用