1

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

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

另一种选择是我必须在控制器中解析字符串,并在呈现此 HTML 之前呈现对字符串的所有子调用。

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

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

1 回答 1

0

从你的陈述

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

我知道您想使用动态提供的action-name和调用动作controller。如果这是你想要的,你可以使用它

视图模型

 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);
 }
于 2013-01-08T14:49:51.347 回答