2sxc - 不能使用 c# 变量

2sxc - Cannot use c# vars

我正在尝试使用 2sxc 视图通过 linq 创建一些统计信息。但是我似乎无法调用任何 c# var。这是一个例子:

@{
    if (@Request.QueryString["ano"] == "" || @Request.QueryString["ano"] == null) {
        <p>ano not set, using current year (@DateTime.Now.Year)</p>
        var year = @DateTime.Now.Year;
        } else {
        <p>ano set (@Request.QueryString["ano"])</p>
        var year = @Request.QueryString["ano"];
    }

    var items = AsDynamic(App.Data["entity"]);
    items = items.Where(p => Convert.ToDateTime(p.data_a).Year == year);
}

这导致

error CS0103: The name 'year' does not exist in the current context

我是不是又在做傻事了?

您在 if 语句内声明变量并在 if
外引用它 现在您可以像这样重写代码:

@{
    int year = 0;
    if (@Request.QueryString["ano"] == "" || @Request.QueryString["ano"] == null) {
        <p>ano not set, using current year (@DateTime.Now.Year)</p>
        year = @DateTime.Now.Year; // no "var" keyword here!
        } else {
        <p>ano set (@Request.QueryString["ano"])</p>
        year = int.Parse(Request.QueryString["ano"]);
    }

    var items = AsDynamic(App.Data["entity"]);
    items = items.Where(p => Convert.ToDateTime(p.data_a).Year == year);
}