c# - 无法访问 Razor 代码中内联声明的变量

标签 c# asp.net-mvc-3 variables razor

<div id="header-content">
    <a href="@Url.Action("Index", "Home")">
        <img class="mainlogo" src="@Url.Content("~/Public/images/logo.png")"/>
    </a>

    @{
        using (EFJugadorRepository repository = new EFJugadorRepository())
        {
            var playersOnline = repository.FindAllJugadores().Where(j => j.jugEstado == 100).Count();
        }

        using (EFEstadisticaMesaRepository estadisticaMesaRepository = new EFEstadisticaMesaRepository())
        {
            var tablesInPlay = estadisticaMesaRepository.GetTablesInPlayCount;
            var availableTables = estadisticaMesaRepository.GetAvailableTablesCount;
        }
    }

    <div id="players">
        <p>Jogadores Online: <span class="onlinecount">@playersOnline</span></p>
        <p>Mesas Jogando: <span class="onlinecount">213</span></p>
        <p>Mesas Disponiveis: <span class="onlinecount">850</span></p>                    
    </div>

    <div id="login">
        @Html.Partial("_LogOnPartial")
    </div>
</div>

我尝试在 Razor 代码中使用 @playersOnline 变量,但它说它未声明。

Cannot resolve symbol 'playersOnline'.

知道为什么我无法访问该变量吗?

是因为它是在 using 语句中声明的吗?

最佳答案

是的,这是因为它是在 using 语句中声明的。

using 语句中声明的所有内容都适用于该代码块。与 if 语句相同。

只需将变量减速放在 using 之外即可:

int playersOnline = 0;

    using (EFJugadorRepository repository = new EFJugadorRepository())
            {
                playersOnline = repository.[...]).Count();
            }

正如评论中所指出的,您的代码似乎不属于 View 层。考虑一下如何构建代码并从 Darin 那里获取一些提示。

关于c# - 无法访问 Razor 代码中内联声明的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8038760/

相关文章:

c# - 如何找到介于其他两种颜色之间的颜色?

asp.net-mvc-3 - 在查询字符串中使用 “popup=1”时找不到mini-profiler结果

jquery - MVC 模型绑定(bind)期间日月反转

c# - 在方法中放置局部变量声明的最佳实践?

java - 在列表中排序时如何跟踪变量? (风险游戏)

C++如何在代码中添加环境变量?

c# - C#中的锁变量

c# - 远程关闭后保持管道打开的最佳方法

c# - WPF:删除标题/控制框

c# - 是否可以从 Controller 方法以编程方式调用 Razor 编译器?