调用Html.从HTML字符串内部的RenderAction

本文关键字:内部 RenderAction 字符串 HTML Html 调用 | 更新日期: 2023-09-27 17:50:55

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

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

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

编辑:数据库将返回如下代码,服务层可以将{$gallery$}替换为@Html.RenderAction("Show", "Gallery", {id=5})

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

调用Html.从HTML字符串内部的RenderAction

From your statement

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

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

ViewModel

 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();
       }
  }
<<p> 视图/strong>
 @model MyView
  ....render stuff for the view
@{
   Html.RenderAction(Model.Action,Model.ControllerName);
 }