C# 在asp.net mvc3视图中使用关键字
我正在使用MVC3框架设计一个网站。我从ms sql数据库中提取控制器中的数据,表中的一列被命名为“do”。当我尝试创建一个视图来使用@Model关键字(例如:@Model.do)显示信息时,我得到一个错误: 预期标识符;do是一个关键词 我想知道是否有办法在MVC3视图中使用列名(即c#中的关键字),还是只能选择重命名数据库表中的列C# 在asp.net mvc3视图中使用关键字,c#,asp.net-mvc-3,keyword,asp.net-mvc-views,C#,Asp.net Mvc 3,Keyword,Asp.net Mvc Views,我正在使用MVC3框架设计一个网站。我从ms sql数据库中提取控制器中的数据,表中的一列被命名为“do”。当我尝试创建一个视图来使用@Model关键字(例如:@Model.do)显示信息时,我得到一个错误: 预期标识符;do是一个关键词 我想知道是否有办法在MVC3视图中使用列名(即c#中的关键字),还是只能选择重命名数据库表中的列 谢谢 无法在viewmodel(.cs类)内部定义变量do 也就是说,您可以在模型中重新映射,以便将列do映射到字段do\u字段 public class Ent
谢谢 无法在viewmodel(.cs类)内部定义变量
do
也就是说,您可以在模型中重新映射,以便将列do
映射到字段do\u字段
public class Entity
{
[Column("do")]
public string do_field { get; set; }
}
在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
}
}
或
谢谢你的回复。虽然我使用实体框架模型访问数据库,但我仍然可以在其中重新映射。@Learner-这是正确的。EF使用的您定义的模型中可以包含此数据注释。或者,您可以使用fluent api()来定义映射。@WernerStrydom-正确的做法是显示使用关键字时显示的错误,以及显示如何重新映射实体。我没有意识到
@
可以像那样用作转义属性,因此这里唯一不正确的陈述更不完整,因为您的答案指出,您可以使用@
符号转义关键字。@TravisJ我认为您给出了很好的建议。我的回答是针对你的第一句话。@WernerStrydom:我尝试了你关于避开关键词的建议,效果非常好。感谢您为这个问题提供了另一种解决方案!!
public void DoSomething(int @do)
{
for (int i = 0; i < @do; i++)
{
// process i
}
}
<%= Model.@do %>
@Html.Raw(Model.@do)
@(@Model.@do)