我有一个ASP.NET MVC 4应用程序,它使用数据库来存储页面(HTML),画廊,表单等...我想为用户提供从内部页面调用其他控制器的功能。
简化问题是如何从数据库获取的字符串调用render动作。例如,我希望该字符串包含@Html.RenderAction("Show", "Gallery", new {id=5})
另一个选项我必须解析控制器中的字符串,并在呈现此HTML之前将所有子调用呈现为字符串。
编辑:
数据库将返回类似下面的代码,服务层可以用@Html.RenderAction("Show", "Gallery", {id=5})
<div class="text">
<h1> title </h1>
<p> this is some random text {$gallery$} </p>
</div>
答案 0 :(得分: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);
}