【问题标题】:How to redirect from one Razor Page to another如何从一个 Razor 页面重定向到另一个
【发布时间】:2018-03-22 21:39:43
【问题描述】:
我有一个名为 Page1 的页面。
在OnGet(string parameter1) 内部我检查了一个参数,并且在某些情况下希望将用户路由到另一个页面。
页面位于此处:
页面/App/App.cshtml
我试过这个:
this.RedirectToPage("/App/App");//
但是用户没有被重定向。如果重定向不存在,它只会显示与预期相同的页面。我希望他们看到应用页面。
那么如何重定向到应用页面呢?
【问题讨论】:
标签:
c#
asp.net-core
razor-pages
【解决方案1】:
这是有效的:
public async Task<IActionResult> OnGet(string web_registration_key)
{
//Check parameter here
if(doRedirect)
{
return RedirectToPage("/App/App")
}
}
return null;
}
返回 null 看起来很奇怪,但不知道还要返回什么。
【解决方案2】:
我使用了 return Page();
这是我的一个项目中的一个例子:
public IActionResult OnGet(int id)
{
var MenuItemFromDb = _db.MenuItem.Include(m => m.CategoryType).Include(m => m.FoodType)
.Where(x => x.Id == id).FirstOrDefault();
if (MenuItemFromDb == null)
{
return RedirectToPage("./Index");
}
else
{
ShowCart(id);
return Page();
}
}
private void ShowCart(int id)
{
var MenuItemFromDb = _db.MenuItem.Include(m => m.CategoryType).Include(m => m.FoodType)
.Where(x => x.Id == id).FirstOrDefault();
CartObj = new ShoppingCart()
{
MenuItemId = MenuItemFromDb.Id,
MenuItem = MenuItemFromDb
};
}