我正在开发一个支持多语言的 ASP.NET MVC3 项目。我将所有单词保存在数据库中,并根据 Session 值从中选择。目前我得到的值如下:
public ActionResult Index()
{
string lang = (string)System.Web.HttpContext.Current.Session["Language"];
if (lang == "Tr" || lang == null)
{
ViewBag.Admin = db.Words.Find(10).Tr;
}
else if(lang == "En")
{
ViewBag.Admin = db.Words.Find(10).En;
}
return View();
}
目前的Word类型:
public class Word
{
public int ID { get; set; }
public string Tr { get; set; }
public string En { get; set; }
}
但是,语言的数量会增加,使用目前的方法,我需要手动添加这些。我想要的是动态获取单词的“会话”语言形式,例如(伪):
ViewBag.Admin = db.Words.Find(10)."Session[Language]";
我知道这应该很容易,但找不到合适的关键字来找到它。知道如何实现这一目标吗?
编辑:我只需要一种执行 SQL 字符串的方法,如下所示:
String lang = (string)System.Web.HttpContext.Current.Session["Language"];
ViewBag.MyWord = ExecuteSQL.("SELECT " + lang + " FROM Words WHERE ID = " + 10 + " ");
编辑2:我尝试了以下几行:
ViewBag.Admin = db.Words.SqlQuery("SELECT" +
(string)System.Web.HttpContext.Current.Session["Language"] +
"FROM Words WHERE ID=10");
但是,此操作的输出是屏幕上的查询本身。(从 ID=10 的单词中选择 Tr)