[英]Call Html.RenderAction from inside HTML string
我有一個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>
從你的陳述
簡化的問題是如何從數據庫獲取的字符串中調用渲染操作。
我知道您想使用動態提供的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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.