1

データベースを使用してページ (HTML)、ギャラリー、フォームなどを保存する ASP.NET MVC 4 アプリケーションがあります。ページ内から他のコントローラーを呼び出す機能をユーザーに提供したいと考えています。

単純化された問題は、データベースで取得した文字列からレンダー アクションを呼び出す方法です。たとえば、その文字列に次のものが含まれていることを望みます@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動的に提供されたandを使用してアクションを呼び出したいと思います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 に答える