如何在ASP.NET Core MVC中不修改URL显示另一视图?
在ASP.NET Core MVC中实现不修改URL的视图切换
在ASP.NET Core MVC中,你完全可以沿用.NET Framework MVC里的方式,直接返回指定视图即可——这种方式不会修改地址栏的URL,因为是服务器端直接渲染目标视图并返回给客户端,而非重定向操作。
具体用法
直接使用View()方法指定视图名称和模型:
return View("目标视图名", 你的模型对象);
举个实际例子,假设你在HomeController的某个方法中,想要返回About视图并传递模型:
public IActionResult SomeAction() { var model = new YourViewModel { Title = "示例数据", Content = "这是传递给视图的内容" }; // 返回About视图,地址栏URL保持当前请求的URL(比如/home/someaction) return View("About", model); }
视图路径说明
- 如果目标视图和当前控制器在同一个
Views子文件夹下,直接写视图名称即可; - 如果视图在其他控制器的
Views文件夹下,需要使用相对路径,比如:// 返回OtherController下的Test视图 return View("../OtherController/Test", model); - 也可以使用完整的视图文件路径:
return View("/Views/OtherController/Test.cshtml", model);
和重定向的区别
你找到的RedirectToPageResult属于重定向操作,它会向客户端返回302响应,让客户端重新发起对目标页面的请求,因此地址栏URL会改变;而直接返回View是服务器端直接渲染视图并返回,整个过程是一次请求响应,URL保持不变。
内容的提问来源于stack exchange,提问作者hiks
相关产品推荐
相关产品推荐

