C# 使用剃须刀时避免混淆的方法<&燃气轮机;象征

C# 使用剃须刀时避免混淆的方法<&燃气轮机;象征,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我对razor还不熟悉,我发现它在打字时经常会断裂(解释如下)。。。它会告诉我一些东西是无效的(通过错误),但随后同样的代码会正常工作。在使用符号(用于泛型)时,它似乎有一个主要问题。它将一直工作,直到我再次开始进行更改,然后intellisense将在我键入时中断(在本例中,当执行lambda表达式时)。然后它再次抱怨括号。我的代码来自Telerik示例: @(Html.Kendo().Grid<Order>().Name("Orders").Columns(c => {

我对razor还不熟悉,我发现它在打字时经常会断裂(解释如下)。。。它会告诉我一些东西是无效的(通过错误),但随后同样的代码会正常工作。在使用<>符号(用于泛型)时,它似乎有一个主要问题。它将一直工作,直到我再次开始进行更改,然后intellisense将在我键入时中断(在本例中,当执行lambda表达式时)。然后它再次抱怨括号。我的代码来自Telerik示例:

@(Html.Kendo().Grid<Order>().Name("Orders").Columns(c =>
  {
      c.Bound(p => p.OrderID);
      c.Bound(p => p.OrderDate).Format("{0:d}").Title("Date");
      c.Bound(p => p.Name).Title("Name");
      c.Bound(p => p.Company).Title("Company");
      c.Bound(p => p.Email);
      c.Bound(p => p.Phone).Title("Phone");
      c.Bound(p => p.Total).Format("{0:c}");
      c.Bound(p => p.Approved);
  })
    .DataSource(d => d
        .Ajax()
        .Read(a => a.Action("GetOrders", "Home"))
        .PageSize(10)
        .Sort(sort => sort.Add("OrderDate").Descending())
        )
    .Pageable()
    .Sortable()
    .Filterable()
 )
@(Html.Kendo().Grid().Name(“Orders”).Columns(c=>
{
c、 绑定(p=>p.OrderID);
c、 绑定(p=>p.OrderDate).Format(“{0:d}”).Title(“日期”);
c、 绑定(p=>p.Name).Title(“Name”);
c、 约束(p=>p.Company)。所有权(“公司”);
c、 绑定(p=>p.Email);
c、 绑定(p=>p.Phone)。标题(“Phone”);
c、 绑定(p=>p.Total).Format(“{0:c}”);
c、 约束(p=>p.批准);
})
.DataSource(d=>d
.Ajax()
.Read(a=>a.Action(“GetOrders”,“Home”))
.页面大小(10)
.Sort(Sort=>Sort.Add(“OrderDate”).Descending())
)
.Pageable()
.Sortable()
.可过滤()
)
如果我开始在filterable下添加“.resizeable(r=>..”,intellisense将停止工作,错误将再次发生。我想这是对开头的困惑(以及我正在为lambda键入另一个大括号的事实)

我应该使用另一种方法。如果我一直失去智能感知,这会让razor非常恼火。我唯一能做的就是这样,但我必须先将它分配给一个变量,这似乎很奇怪

@{ var g = Html.Kendo().Grid<Order>().Name("Orders").Columns(c =>
  {
      c.Bound(p => p.OrderID);
      c.Bound(p => p.OrderDate).Format("{0:d}").Title("Date");
      c.Bound(p => p.Name).Title("Name");
      c.Bound(p => p.Company).Title("Company");
      c.Bound(p => p.Email);
      c.Bound(p => p.Phone).Title("Phone");
      c.Bound(p => p.Total).Format("{0:c}");
      c.Bound(p => p.Approved);
  })
    .DataSource(d => d
        .Ajax()
        .Read(a => a.Action("GetOrders", "Home"))
        .PageSize(10)
        .Sort(sort => sort.Add("OrderDate").Descending())
        )
    .Pageable()
    .Sortable()
    .Filterable()
    .Resizable(r => r.Columns(true));

    @g
}
@{var g=Html.Kendo().Grid().Name(“Orders”).Columns(c=>
{
c、 绑定(p=>p.OrderID);
c、 绑定(p=>p.OrderDate).Format(“{0:d}”).Title(“日期”);
c、 绑定(p=>p.Name).Title(“Name”);
c、 约束(p=>p.Company)。所有权(“公司”);
c、 绑定(p=>p.Email);
c、 绑定(p=>p.Phone)。标题(“Phone”);
c、 绑定(p=>p.Total).Format(“{0:c}”);
c、 约束(p=>p.批准);
})
.DataSource(d=>d
.Ajax()
.Read(a=>a.Action(“GetOrders”,“Home”))
.页面大小(10)
.Sort(Sort=>Sort.Add(“OrderDate”).Descending())
)
.Pageable()
.Sortable()
.可过滤()
.可调整大小(r=>r.Columns(true));
@g
}

我是否遗漏了一些东西,或者这是避免智能感知问题的正确方法?

您是否尝试过不使用前导括号?例如:
@Html.Kendo…
。?是的,我尝试过使用和不使用外包装支架都这样做,但两者都不起作用。