我正在開發一個具有多語言支持的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 –