从HTML字符串中调用Html.RenderAction

时间:2013-01-08 08:25:18

标签: c# asp.net-mvc razor

我有一个ASP.NET MVC 4应用程序,它使用数据库来存储页面(HTML),画廊,表单等...我想为用户提供从内部页面调用其他控制器的功能。

简化问题是如何从数据库获取的字符串调用render动作。例如,我希望该字符串包含@Html.RenderAction("Show", "Gallery", new {id=5})

另一个选项我必须解析控制器中的字符串,并在呈现此HTML之前将所有子调用呈现为字符串。

编辑: 数据库将返回类似下面的代码,服务层可以用@Html.RenderAction("Show", "Gallery", {id=5})

替换{$ gallery $}
<div class="text">
<h1> title </h1>
<p> this is some random text {$gallery$} </p>
</div>

1 个答案:

答案 0 :(得分:0)

来自你的陈述

  

简化问题是如何从获取的数据库中调用渲染操作   字符串。

我知道您要使用动态提供的action-namecontroller来调用操作。如果这是你想要的,你可以使用

<强>视图模型

 public class MyViewModel{

   public string Action {get;set;}

   public string ControllerName {get;set;}

 }

<强>控制器

  public class MyController : Controller{

       public ActionResult MyView(){

         return View(new MyViewModel 
                   { Action ="MyPartialView" , ControllerName = "my"});
       }

       public ActionResult MyPartialView(){
         return PartialView();
       }
  }

查看

 @model MyView

  ....render stuff for the view

@{
   Html.RenderAction(Model.Action,Model.ControllerName);
 }