HttpCookie加匿名类实现多语言

突然想做一个多语言网站,确不知道怎么实现好,突然想到了HttpCookie,然后页面后台用匿名类实现语言的储存。

            string lan = Request["str_lan"];
            ViewBag.lan = lan;

            HttpCookie hc = new HttpCookie("language");
            hc.Value = lan;
            hc.Expires = DateTime.Now.AddDays(1);
            Response.Cookies.Add(hc);        

HttpCookie用来当前记录语言种类。

 

前台页面取值:

@{
    ViewBag.Title = "Home Page";
    var language = new Dictionary<string, object>();
    language.Add("zh_cn", new { name = "邓永高" });
    language.Add("en", new { name = "dyg" });

    string get_lan = string.Empty;
    HttpCookie cookie_language = Request.Cookies["language"];
    if (cookie_language != null)
    {
        get_lan = cookie_language.Value;
    }

}


@using MVCMutiLan.Controllers;

<h2>@Html.getPageLanVal(language, get_lan, "name").ToString()</h2>
<form action="/Home/Index" method="post">

    <select name="str_lan">
        <option value="zh_cn">简体中文</option>
        <option value="en">英文</option>
    </select>  <input type="submit" value="设置语言" />

</form>

@ViewBag.lan

 

控件取值的扩展方法:

 public static class HtmlHelpers
    {
        public static object getPageLanVal(this HtmlHelper helper, Dictionary<string, object> dic, string strlan, string Lanvalue)
        {
            return dic[strlan].GetType().GetProperties().Where(x => x.Name == Lanvalue).FirstOrDefault().GetValue(dic[strlan]);
        }
    }

 

转载于:https://www.cnblogs.com/dyg540/p/5551560.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值