ASP.NET MVC site.masterにグローバルメニューを構築しようとしていますが、site.masterからApplication Settingsプロパティにアクセスする方法がわかりましたマークアップ?以前私はおそらく、私のsite.masterのコードビハインドからconfigオブジェクトをインスタンス化し、publicプロパティを設定していたでしょう。しかし今、私は頭を傷つけています...もっとコーヒーが必要でしょう。ASP.NET MVCビューでのアプリケーション設定へのアクセス
回答コードで更新
はBASEURLと呼ばれるアプリケーションproperertiesに設定した文字列を追加しましたし、それをGlobalMenu.cs
public class GlobalMenu
{
private string _baseurl;
public string baseurl
{
get { return _baseurl; }
set
{
_baseurl = value;
}
}
}
のモデルクラスを作った「
http://mysite.com」
の値を与えました
BaseControllerという名前のベースコントローラクラスが作成され、コントローラから継承され、オーバーロードOnActionExecutedly:
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
string baseurl = Properties.Settings.Default.baseurl;
GlobalMenu menumodel = new GlobalMenu();
menumodel.baseurl = baseurl;
ViewData["menudata"] = menumodel;
base.OnActionExecuted(filterContext);
}
は、次のようになり、強くGlobalMenuに入力した共有フォルダにViewGlobalMenuと呼ばれる部分図を作成した...しかし、明らかより多くのものを持つ:最後に
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyApp.Web.Models.GlobalMenu>" %>
Site.Master Iでメニューを表示したい場所にこれを追加しました。
<%Html.RenderPartial("ViewGlobalMenu", (MyApp.Web.Models.GlobalMenu)ViewData["menudata"]); %>
スナップのように働いた...ありがとう!上記の私のサンプルコードを追加します。 – Webjedi
ベースコントローラーからすべてのコントローラーを派生させるのを忘れるまで。私は現在、HttpModuleまたはHttpHandler内のPropertiesオブジェクトを読み取るソリューションを探しています。 – belugabob
@belugabob - それが私たちがテストする理由です。 – tvanfosson