更新: :我有两个Razor页面,在第一页面中,我获得了个人信息,在第二页面中,我将从提交信息的那个人那里获得项目信息。第一页,第二页(ProjectInformation表)中,将与第一页(projectOwner表)信息相关的数据保存在 personId ,
更新结束
我在像这样的BindProperty的razorPage中传递“用户电子邮件”
[BindProperty]
public string OwnerEmail { get; set; }
public IActionResult OnGet(string OwnerId)
{
OwnerEmail = OwnerId;
return Page();
}
在RazorPage中显示如下
@page
@model Sunn.Raz.Pages.Order.ProjectOrderModel
@using Sunn.Model
@{
ViewData["Title"] = "ProjectOrder";
}
<h4>ProjectOrder</h4>
@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 });
}
但 userEmail 为空, 如何在 OnPostAsync()中获得 用户电子邮件(OwnerEmail) 的值? Update2: 在Razor Page中访问我们的财产,就像这样
<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" />
答案 0 :(得分:0)
在“剃须刀页面”上,您只显示OwnerEmail
的值,但在提交表单时不发布其数据。尝试添加隐藏的类型输入以使其:
<form method="post">
<h4>ProjectOrder</h4>
@Model.OwnerEmail
<input type="hidden" asp-for="OwnerEmail"/>
<button type="submit">
Submit
</button>
</form>
答案 1 :(得分:0)
感谢您的帮助 我确实喜欢这样,但是我不确定那是最好的方法,但是可以工作
我在Project中定义BindProperty
[BindProperty(SupportsGet = true)]
public int OwnerId { get; set; }
在OnGet()中填充它
this.OwnerId = OwnerId;
执行此操作
@ {Model.ProjectOrder.ProjectOwnerId = Model.OwnerId; }