ここに誰かがあなたのビュー、コントローラー、アクションをデータベースからページタイトルが設定されるように構成しましたか?あるビューを別のビューからどのように識別しますか?ライフサイクルのどのフェーズでページタイトルを取得し、それを表示/アクションメソッドに設定しますか?asp.net、phpには多くの投稿が散在していますが、mvcの効率的な方法はまだ見つかりません
質問する
459 次
2 に答える
4
アクションフィルターを使用できます。
public class ControllerAndActionNameAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.Controller.ViewBag.ControllerName = filterContext.RequestContext.RouteData.Values["controller"].ToString();
filterContext.Controller.ViewBag.ActionName = filterContext.RequestContext.RouteData.Values["action"].ToString();
base.OnActionExecuting(filterContext);
}
}
ただし、アクション名またはコントローラー名をビューバッグに入れる代わりに、アクションまたはコントローラー、あるいはその両方に基づいてデータベースからデータをロードすることができます。
于 2012-12-21T10:40:44.553 に答える
1
データベースからすべてのタイトルを取得し、それらをある種のキャッシュまたは静的変数thinkに格納するサービスまたはヘルパーメソッドがある場合はどうなりますかDictionary
。実行中のサイトでどのように更新するかによって、いつ、どのように更新するかが決まります。
次に、ビューがタイトルを取得するために呼び出すことができる静的ヘルパーメソッドを公開します。
おそらく、T4テンプレートを組み込んで、各ビューのプロパティを設定し、正しい取得キーでメソッドを呼び出すこともできます。
于 2012-12-21T10:30:40.293 に答える