在控制器 ASP NET MVC 中将 #id 后缀添加到 RedirectToAction()
Posted
技术标签:
【中文标题】在控制器 ASP NET MVC 中将 #id 后缀添加到 RedirectToAction()【英文标题】:Add #id suffix to RedirectToAction() in controller ASP NET MVC 【发布时间】:2020-10-03 14:46:39 【问题描述】:不知怎的,我觉得这很难描述,但我开始了:
我的 SelectClasses Razor 视图页面中有一个 id="id152" 的 div。 为了让我在重新加载时在页面上显示该 div,我必须将后缀 #id152 添加到我的页面 url。
<div id="id152">blabla</div>
...
..
<a href="#id152">Section 7</a>
现在我的问题是:有没有办法将此后缀添加/传递给“RedirectToAction()”?
public ActionResult Index()
//All we want to do is redirect to the class selection page and add a suffix
return RedirectToAction("SelectClasses", "Registration", new id = 99 )); //add suffix here somewhere
所以当我的 SelectClasses 视图显示时,url 看起来像这样:
'[url]/SelectClasses/99#id152'
【问题讨论】:
什么动作使页面重新加载?如果您没有提交任何表单,则页面无需重新加载页面。 【参考方案1】:RedirectToActionResult
(在其余的RedirectTo*
结果中)用于根据注册的路由数据生成 URL。
在您的情况下,您希望连接一个未发送到服务器且仅由浏览器使用的哈希参数值 (#id152
)。这就是为什么说的方法不费心处理它的原因。
我建议你这样做:
var redirUrl = Url.Action("SelectClasses", "Registration", new id = 99 );
redirUrl = String.Concat(redirUrl, "#id152");
return Redirect(redirUrl);
【讨论】:
以上是关于在控制器 ASP NET MVC 中将 #id 后缀添加到 RedirectToAction()的主要内容,如果未能解决你的问题,请参考以下文章
在 ASP.NET Core MVC6 中将文件和模型发布到控制器
在 ASP.Net MVC (LINQ) 中将嵌套数据从控制器传递到视图