如何在不使用RedirectToAction的情况下显示另一个控制器操作的结果

时间:2013-08-12 13:23:51

标签: asp.net-mvc

我有两个ASP.NET MVC控制器操作,如下所示,并希望RenderComponent显示RenderComponentPublic的内容而不调用RedirectToAction

相反,我希望在RenderComponent下显示内容,并且不会发生重定向。

有人可以建议一种方法来实现这个目标吗?

控制器操作1 - RenderComponent

[Authorize(Roles = "user")]
public ActionResult RenderComponent(
  string ckey,
  string ukey)
  {
        return RedirectToAction("RenderComponentPublic", new
                {
                    ckey,
                    ukey
        });
  }

控制器操作2 - RenderComponentPublic

public ActionResult RenderComponentPublic(
  string ckey,
  string ukey)
  {
      return PartialView("_ThisContent");
  }

2 个答案:

答案 0 :(得分:4)

您始终可以在C#中调用其他操作。

[Authorize(Roles = "user")]
public ActionResult RenderComponent(
  string ckey,
  string ukey)
  {
        return RenderComponentPublic(ckey,ukey);
  }

答案 1 :(得分:1)

可能符合您需求的一种方法是致电Html.RenderAction所以在您的RenderComponent视图中,只需致电;

@(Html.RenderAction("RenderComonentPublic", new { ckey = Model.ckey, ukey = Model.ukey });)

@Html.Action("RenderComonentPublic", new { ckey = Model.ckey, ukey = Model.ukey })

您必须将ckeyukey传递到模型中的视图或ViewBag或其他内容。

您的RenderComponentPublic视图需要将layout页面设置为null,才能在布局中呈现。

不确定这是否是您要找的。