【发布时间】:2019-07-01 22:58:48
【问题描述】:
不是 MVC!
大家好,
我在这里做错了什么......
我试图将一个整数值从 Razor 页面(Scores/Create.cshtml)的 onPost 方法传递到另一个页面(/Scores/Index.cshtml)的 onGet 方法,但是该值没有被保留,我要么根据我发送整数的方式,在 onGet 方法中检查 id 值时获取 null 或 0。
我知道这可以使用路由,因为我在另一个页面上这样做
<a asp-page="/Scores/Index" asp-route-id="@item.ElementId">Update scores</a>
我尝试从如下代码示例中的实体属性传递值,从 ViewData 变量传递值,也从本地创建的整数传递值,最后只是传递一个整数值本身。在所有情况下,OnPost 中的值都是正确的,但永远不会到达 onGet。
邮报
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
_context.TScores.Add(TScores);
await _context.SaveChangesAsync();
return RedirectToPage("./Index","OnGet",TScores.ElementId);
}
OnGet
public async Task OnGetAsync(int? id)
{
TElements telement = new TElements();
telement = _context.TElements.Where(a => a.ElementId == id).FirstOrDefault();
我也试过没有在RedirecttoPage中设置OnGet方法名
我希望在 onGet 中获取 id 的值以匹配从 onPost 传递的 TScores.ElementID。
提前致谢
D
【问题讨论】:
标签: asp.net-core parameter-passing razor-pages