我正在使用MVC3框架來設計一個網站。我從ms sql數據庫中取出控制器中的數據,並將表中的一列命名爲「do」。當我嘗試創建視圖以使用@Model關鍵字(例如:@ Model.do)顯示信息時,出現錯誤:在asp.net mvc3視圖中使用關鍵字
標識符預期; do是一個關鍵字。
我想知道是否有方法來使用MVC3視圖中的列名(這是關鍵字在C#中)或我只能選擇重命名數據庫表中的列?
謝謝!
我正在使用MVC3框架來設計一個網站。我從ms sql數據庫中取出控制器中的數據,並將表中的一列命名爲「do」。當我嘗試創建視圖以使用@Model關鍵字(例如:@ Model.do)顯示信息時,出現錯誤:在asp.net mvc3視圖中使用關鍵字
標識符預期; do是一個關鍵字。
我想知道是否有方法來使用MVC3視圖中的列名(這是關鍵字在C#中)或我只能選擇重命名數據庫表中的列?
謝謝!
你在C#中使用任何關鍵字的方法是用前綴它重新映射@」。例如,你會看到很多
@Html.ActionLink("My Link", "Action", null, new {@class="abc"})
將「class」屬性添加到「a」標籤。這是合法的代碼:
class Program
{
static void Main(string[] args)
{
Entity e = new Entity();
[email protected] = 10;
}
}
class Entity
{
public int @do
{
get;
set;
}
}
,所以是
public void DoSomething(int @do)
{
for (int i = 0; i < @do; i++)
{
// process i
}
}
如果您正在使用ASPX爲您的視圖引擎,以下是罰款:
<%= [email protected] %>
在Razor視圖,以下也是有效的:
@Html.Raw([email protected])
或
@(@[email protected])
沒有辦法在視圖模型(.cs類)中定義變量do
。
"Error 1 Invalid token 'do' in class, struct, or interface member declaration"
話雖這麼說,你可以在你的模式,使列do
被映射到外地do_field
public class Entity
{
[Column("do")]
public string do_field { get; set; }
}
+1,關於使用'@'符號轉義關鍵字的好處。 – 2012-04-06 07:44:07