在asp.net mvc3视图中使用关键字

时间:2012-04-05 21:28:56

标签: c# asp.net-mvc-3 keyword asp.net-mvc-views

我正在使用MVC3框架来设计一个网站。我从ms sql数据库中提取控制器中的数据,并将表中的一列命名为“do”。当我尝试使用@Model关键字创建一个显示信息的视图时(例如:@ Model.do),我收到一个错误:

预期的标识符; do是关键字。

我想知道是否有办法在MVC3视图中使用列名(c#中的关键字),还是只选择在数据库表中重命名列?

谢谢!!

2 个答案:

答案 0 :(得分:2)

在C#中使用任何关键字的方式是在其前面加上“@”。例如,你会看到很多

@Html.ActionLink("My Link", "Action", null, new {@class="abc"}) 

将“class”属性添加到“a”标记。这是合法的代码:

class Program
{
    static void Main(string[] args)
    {
        Entity e = new Entity();
        e.@do = 10;
    }
}

class Entity
{
    public int @do
    {
        get;
        set;
    }
}

等等

public void DoSomething(int @do)
{
    for (int i = 0; i < @do; i++)
    {
        // process i
    }
}

如果您使用ASPX作为视图引擎,则可以使用以下内容:

<%= Model.@do %>

在Razor视图中,以下内容也有效:

@Html.Raw(Model.@do)

@(@Model.@do)

答案 1 :(得分:1)

没有办法在viewmodel(.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; }
}