【问题标题】:Getting data from a .cs file to a .cshtml将数据从 .cs 文件获取到 .cshtml
【发布时间】:2021-07-16 11:35:57
【问题描述】:

我正在尝试将从我的函数接收到的数据传递给使用 javascript 的 .cshtml 文件。

public static int LastID()
        {
            int LastArticleNr;
            SqlConnection conn = GetSqlConnection(null);

            conn.Open();
            LastArticleNr = conn.QueryFirstOrDefault <int> ("SELECT CAST(isnull(last_value,0) AS INT) AS ID FROM sys.identity_columns WHERE object_id = OBJECT_ID('Artikel')");
            conn.Close();

            return LastArticleNr;
        }

现在我不知道这是否可能,或者我是否需要使用不同的方法来获取这些数据。然而,我尝试过的只是简单地调用函数,可能没有人感到惊讶并没有做太多。我也试过这个:

@using namespace.Classes.DataLayer;
@{
var LastID = DataLayer.LastID();
}

但是,即使 using 子句应该包含该函数所在的类,它也无法识别 DataLayer 类。

【问题讨论】:

  • 应该是@using Classes.DataLayer
  • @Mike 这只是提出它是“不必要的”但它无法识别var LastID = DataLayer.LastID();
  • 需要更多关于 LastID 方法与调用页面的关系的详细信息。
  • 它位于名为 DataLayer.cs 的文件下的 namespace.Classes.DataLayer 中,这就是我在这里调用的文件,它只是无法识别它。我根本不懂 AJAX,也不明白为什么这只是一直说函数 LastID 不存在。
  • 所以你有一个名为“namespace”的命名空间?为什么?

标签: javascript html razor-pages


【解决方案1】:

这实际上取决于您的应用程序的结构。比如:当您尝试访问数据访问层时遇到什么错误? 但如果这是在页面加载时完成的,您可以将数据传递到 TempData:

TempData['LastId'] = LastID();

然后在你的剃须刀页面中:

@{
    var lastId = TempData['LastId'];
  }

但是,如果您想在页面加载后的任何时间获取它并且不想刷新页面,您可以使用make an ajax call

【讨论】:

  • 我只需要在页面加载时获取它,坦率地说,我一点也不懂 ajax。但它无法识别 TempData 中的 LastID()。
  • 我可以看看你是怎么设置的吗?请分享一个代码sn-p。
  • 通过在函数中将其称为 @TempData['LastId'] 来修复它,由于某种原因它在那里工作,但在 @{ 中的文件顶部不工作现在!
  • 是的,您可以在 .cshtml 文件的任何部分使用 razor(即使在 JavaScript 中,尽管这是可取的),只要您有 @{}。我很高兴你能弄明白。
猜你喜欢
  • 1970-01-01
  • 2020-08-22
  • 2013-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多