我正在使用 MVC3 框架来设计一个网站。我从 ms sql 数据库中提取控制器中的数据,表中的一列被命名为“do”。当我尝试使用 @Model 关键字(例如:@Model.do)创建一个显示信息的视图时,我收到一个错误:
预期标识符;do 是一个关键字。
我想知道是否有办法在 MVC3 视图中使用列名(它们是 c# 中的关键字),还是我只能选择重命名数据库表中的列?
谢谢你 !!
我正在使用 MVC3 框架来设计一个网站。我从 ms sql 数据库中提取控制器中的数据,表中的一列被命名为“do”。当我尝试使用 @Model 关键字(例如:@Model.do)创建一个显示信息的视图时,我收到一个错误:
预期标识符;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();
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)
没有办法在do
视图模型(.cs 类)中定义变量。
"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; }
}