【问题标题】:Integer call from .CS file to a .CSHTML file从 .CS 文件到 .CSHTML 文件的整数调用
【发布时间】:2020-08-22 14:36:29
【问题描述】:

我正在使用 C# 中的 SignalR、ASP.NET、VS Code 制作一个用户注册/登录的 Web api 聊天应用程序。我想在 CounterHub.cs 中制作一个在线用户计数器,但我不知道如何在我的 Welcome.cshtml 页面中使用.是否可以将此 .CS 文件中的整数数据发送到 .CSHTML 文件? 这是我的 CounterHub.cs 文件

using Microsoft.AspNetCore.SignalR;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Threading.Tasks;

namespace probagetrequest.Hubs
{
    public static class UseHandler
    {
        public static HashSet<string> ConnectedIds = new HashSet<string>();
    }
    public class MyHub : Hub
    {
        public override Task OnConnectedAsync()
        {
            UseHandler.ConnectedIds.Add(Context.ConnectionId);
            return base.OnConnectedAsync();
        }
        public override Task OnDisconnectedAsync(Exception exception)
        {
            UseHandler.ConnectedIds.Remove(Context.ConnectionId);
            return base.OnDisconnectedAsync(exception);
        }

        int counting = UseHandler.ConnectedIds.Count;
    }
}

我想在我的 .cshtml 文件中调用 counting 变量

【问题讨论】:

  • 你可以做的是将变量存储在会话中,然后在视图的控制器中,获取它并将其添加到视图中

标签: c# asp.net razor visual-studio-code razor-pages


【解决方案1】:

您必须按照以下步骤执行此操作。

  1. 在 MyHub 类中创建一个应返回计数的公共方法。
  2. 从 Welcome.cshtml 的控制器调用这个方法
  3. 将此计数器设置为控制器中的 viewbag/viewdata 并访问视图中的 viewbag/viewdata

//欢迎控制器

{
MyHub myhub=new MyHub();

viewbag.counting=muhyb.getCount(); 
// create getcount() method in MyHub class which will return count
}

Welcome.cshtml

<div> @Viewbag.counting </div>

【讨论】:

  • 感谢您的回答。我试过了,但是当我创建“viewbag.counting=myhub.getCount()”时出现了 4 个错误 1.“类、结构或接口成员声明中的无效标记 '=' 2.”无效的标记 '('类、结构或接口成员声明 3."类、结构或接口成员声明中的无效标记 ';' 3. 元组必须包含至少两个元素。
  • 您可以为使用计数变量的新方法、控制器和调用 viewbag 的 .cshtml 添加代码。查看您的代码后,我可以告诉解决方案
  • public int getCount() { return UseHandler.ConnectedIds.Count; } MyHub myhub = new MyHub(); viewbag.counting=myhub.getCount();这是welcome.cshtml:在线用户:
    @Viewbag.counting
  • 在 .cshtml 文件中出现错误,即:当前上下文中不存在名称“Viewbag”[probagetrequest]
  • 在cshtml中,在视图中使用大写V作为 @ViewBag.counting
猜你喜欢
  • 2021-07-16
  • 1970-01-01
  • 2013-08-15
  • 1970-01-01
  • 2013-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-17
相关资源
最近更新 更多