这里有一个razor cs页面:
public IActionResult OnPost(){
if (!ModelState.IsValid) {
return Page();
}
return RedirectToPage('Pages/index.cshtml');
}
和cshtml页面:
@page
@using RazorPages
@model IndexModel
<form method="POST">
<input type="submit" id="Submit">
</form>
我想在表单提交时重定向到同一页面,但我一直收到400错误。是否可以在不使用路由的情况下进行重定向,只需转到url中的cshtml文件?
答案 0 :(得分:6)
@罗马·波克洛夫斯基 这可能太旧了,但是如果您要重定向到某个区域,则应该:
return RedirectToPage ( "/Page", new { Area = "AreaName" } );
答案 1 :(得分:4)
查看MS页面 https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages/?tabs=visual-studio
页面的URL路径关联由页面在文件系统中的位置决定。下表显示了Razor Page路径和匹配的URL: 文件名和路径匹配URL
/Pages/Index.cshtml /或/ Index
/Pages/Contact.cshtml / Contact
/Pages/Store/Contact.cshtml / Store / Contact
/Pages/Store/Index.cshtml / Store或/ Store / Index
页面的URL生成支持相对名称。下表显示了使用不同的RedirectToPage参数选择的索引页面 页/客户/ Create.cshtml:
RedirectToPage(x)Page
RedirectToPage(&#34; / Index&#34;)Pages / Index
RedirectToPage(&#34; ./索引&#34);页/客户/索引
RedirectToPage(&#34; ../ Index&#34;)Pages / Index
RedirectToPage(&#34;索引&#34;)页面/客户/索引
答案 2 :(得分:3)
在视图中尝试此操作;
@using (Html.BeginForm())
{
<input type="submit" id="Submit">
}
答案 3 :(得分:0)
如果要在执行某些操作后重定向到其他页面:
return Redirect("~/Page/YourAction");