2

ここに誰かがあなたのビュー、コントローラー、アクションをデータベースからページタイトルが設定されるように構成しましたか?あるビューを別のビューからどのように識別しますか?ライフサイクルのどのフェーズでページタイトルを取得し、それを表示/アクションメソッドに設定しますか?asp.net、phpには多くの投稿が散在していますが、mvcの効率的な方法はまだ見つかりません

4

2 に答える 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 に答える