调用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>
From your statement
简化的问题是如何从数据库中调用渲染动作字符串。
我知道你想使用动态提供的action-name
和controller
调用一个动作。如果这是你想要的,你可以使用
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);
}