2

ここで、mvc で動的で編集可能なレイアウト ページを作成しようとしています。私のレイアウト ページにはロゴがあります (現在はハードコードされています)。任意のユーザーが自分のロゴをアップロードすることでそのロゴを変更できるように機能を実装しています。そのロゴのパスはデータベースに保存されます。たとえば、これが現在の私のロゴである場合:

<img alt="" src="~/Images/W_logo.png" style="border-style: none;" width="115px" height="60px" />

私はそれが次のようなものになりたい:

<img alt="" src="@item.logo" style="border-style: none;" width="115px" height="60px" />

ここで、「ロゴ」はモデルで渡すパラメーターです。

また

 <img alt="" src="@ViewData["logopath']" style="border-style: none;" width="115px" height="60px" />

また、コントローラーを使用して値を保存している場合、アプリケーションが起動するたびにコントローラーが実行されるようにするにはどうすればよいですか。たとえば、これは私のコントローラーです:

public ActionResult layoutChange()
{
  --recover path from database--
  ViewData["logopath"]=path from the database;
  return View(); -- Here the view is the layout page
}

どんな助けでも大歓迎です。ありがとうございました。

4

1 に答える 1

3

Html.RenderAction_Layout.cshtml ページで使用することをお勧めします。これを使用して、呼び出すコントローラー アクションを指定できます。

次に、コントローラー アクションは、指定したように「データベースからパスを回復img」し、このパスをタグのマークアップを含む部分ビューに渡すことができます。そのすべての結果は、_Layout ページの動的マークアップの一部になります。

このアプローチを採用することで、パス値を _Layout ページに渡す必要がなくなります。_Layout ページが (Html.RenderAction を介して) コントローラーを呼び出し、コントローラーがパスを見つけて、IMG タグ マークアップ全体を返します。

それが役立つことを願っています。

于 2013-03-27T03:55:46.653 に答える