1

我有两个 ASP.NET MVC 控制器操作,如下所示,并且希望RenderComponentRenderComponentPublic不调用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");
  }
4

2 回答 2

4

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

[Authorize(Roles = "user")]
public ActionResult RenderComponent(
  string ckey,
  string ukey)
  {
        return RenderComponentPublic(ckey,ukey);
  }
于 2013-08-12T13:27:21.030 回答
1

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

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

或者

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

您必须将您的ckeyand传递ukey到模型中的视图中,或者 ViewBag 或其他东西中。

您的RenderComponentPublic视图需要将其layout页面设置为null,以便它不会在布局中呈现。

不确定这是否是您正在寻找的。

于 2013-08-12T13:37:07.297 回答