3
我使用會話的包裝是這樣的:使用會話包裝更換直接呼叫會話變量
public interface ISessionWrapper
{
// ...
CultureInfo Culture { get; set; }
}
public class SessionWrapper: ISessionWrapper
{
private T GetFromSession<T>(string key)
{
return (T)HttpContext.Current.Session[key];
}
private void SetInSession(string key, object value)
{
HttpContext.Current.Session[key] = value;
}
// ...
public CultureInfo Culture
{
get { return GetFromSession<CultureInfo>("Culture"); }
set { SetInSession("Culture", value); }
}
}
我可以用這個接口在我的控制器是這樣的:
private readonly ISessionWrapper sessionWrapper = new SessionWrapper();
// ...
ci = new CultureInfo(langName);
sessionWrapper.Culture = ci;
但如何我可以在下面的視圖中訪問這個包裝器來替換(直接調用)會話變量嗎?
@switch (Session["Culture"].ToString())
{
case "fr":
// ...
case "uk":
// ...
}
你可以創建一個HTMLHelper擴展,你將使用會話包裝器... – sajoshi 2011-05-04 09:48:32
@sajoshi:你是對的。我很愚蠢:(學習MVC) – Bronzato 2011-05-04 09:59:19
關閉這個然後..並可能是+1的評論.. – sajoshi 2011-05-06 07:23:35