c# - 如何在 ASP.NET MVC 中使用 C# 在 Page_Load 上设置页面事件
问题描述
我正在使用 ASP.NET MVC 和 C#。我想在我的应用程序中触发卡插入/弹出事件。这怎么可能?只需在Form_Load()
. 但是在 ASP.NET MVC 中,我必须在哪里设置这些处理程序?
Index
方法是:
public ActionResult Index()
{
return View("Index");
}
要火的事件。注意Index()
:如果我之前把这些事件放进去,return View()
我会得到一个错误
异常(异步函数)
代码:
f.CardInserted += new f.CardEventHandler(Card_Inserted);
f.CardEjected += new f.CardEventHandler(Card_Ejected);
f.Watch();
卡插入/弹出事件处理程序定义:
public void Card_Inserted()
{
try
{
if (f.Connect())
{
String x = f.GetCardUID();
TempData["message"] = x.ToUpper();
//TempData["message"] = "Connection Established";
}
else
{
TempData["message"] = "Error During Connection";
}
}
catch (Exception)
{
TempData["message"] = "Error During Try/Catch";
}
}
public void Card_Ejected()
{
TempData["message"] = "Card Removed";
f.Disconnect();
}
观看方法:
public void Watch()
{
this.RdrState = new Card.SCARD_READERSTATE();
readername = GetReadersList()[0];
this.RdrState.RdrName = readername;
states = new Card.SCARD_READERSTATE[1];
states[0] = new Card.SCARD_READERSTATE();
states[0].RdrName = readername;
states[0].UserData = 0;
states[0].RdrCurrState = Card.SCARD_STATE_EMPTY;
states[0].RdrEventState = 0;
states[0].ATRLength = 0;
states[0].ATRValue = null;
this._worker = new BackgroundWorker();
this._worker.WorkerSupportsCancellation = true;
this._worker.DoWork += WaitChangeStatus;
this._worker.RunWorkerAsync();
return;
}
我必须在哪里设置这些事件处理程序才能工作?
解决方案
推荐阅读
- c++ - 在循环中声明变量会花费更多的性能吗?
- ffmpeg - FFMPEG - 使用 rclone mount 在 Gdrive 上将 MKV 转换为 MP4。错误:输出文件 #0 不包含任何流
- javascript - 我们如何将数据传递给 vuex 动作
- oauth-2.0 - 使用 O365 帐户的 OAUTH 并将令牌用于 Web 平台的 IMAP 操作
- node.js - 无法将 NodeJS 应用程序正确部署到 GAE
- ios - 将 Xcode 11 testresult .xcresult 转换为 JUnit?
- c# - 使用 c# 刷新 DNS/网络重启命令
- javascript - 带有提交的 2 个按钮的 Javascript 和 JSP
- mysql - 无法在 MySQL Workbech 中创建外键
- python - 使用 SpaCy Matcher 定义多个单词标记并提取单词之后的所有标记