在没有进行物理重定向的情况下,是否可以通过操作,操作过滤器或任何其他方式在另一个控制器中执行另一个操作中的其他操作。
这样做的原因是我有一个动态的寻呼系统,用户将加载一个网址,例如
/1/some-page-title
此url通过maped连接到控制器“Home”和操作“Element”,然后此操作将从元素id为“1”的数据库中加载一行。根据数据库中元素的数据,页面将呈现为联系人表单,图库等。 现在我可以映射路径了
/Page/1/some-title/ will render a normal html page,
/Contact/1/some-title/ will render a contact form
/Gallery/1/some-title/ will render a gallery
但我希望这些路径很简单。
答案 0 :(得分:11)
这个答案有问题,自从我用ASP MVC做了任何事以来已经很久了,所以我实际上并没有意识到问题是什么。 不幸的是我无法删除已接受的答案 所以,我正在通过答案,因为如果你能真正回答这个问题,或者做得更好,请这样做。
是的,非常简单:)
假设您处于控制器C动作A中。您想要“重定向”到控制器B动作Z,只需从当前控制器动作调用另一个控制器动作,然后返回结果。
public ActionResult A()
{
return B.Z()
}
答案 1 :(得分:0)
您可能正在寻找Html.RenderAction
or Html.Action
。但是,它们在视图中使用,而不是在控制器中使用。