我正在开发一个具有多语言支持的ASP.NET MVC3项目。我保存数据库中的所有单词,并根据Session值从中进行选择。目前我得到的值,如下所示:从动态属性中选择ASP.NET MVC3
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();
}
本型一句话:
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");
然而,为此,输出是查询本身在屏幕上。 (SELECT Tr FROM WHERE ID = 10)
您使用的是什么ORM? EF? – Charlino
是的,我使用EntityFramework –