Javascript 将数据从.cs文件获取到.cshtml

Javascript 将数据从.cs文件获取到.cshtml,javascript,html,razor-pages,Javascript,Html,Razor Pages,我试图将从函数接收到的数据传递到使用javascript的.cshtml文件 public static int LastID() { int LastArticleNr; SqlConnection conn = GetSqlConnection(null); conn.Open(); LastArticleNr = conn.QueryFirstOrDefault <int

我试图将从函数接收到的数据传递到使用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子句应该包含此函数所在的类,它也无法识别数据层类。

这实际上取决于应用程序的结构。比如:当您尝试访问数据访问层时,会出现什么错误? 但如果在页面加载时执行此操作,则可以将数据传递到TempData:

TempData['LastId'] = LastID();
然后在你的剃须刀页面:

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

但是,如果您想在页面加载后的任何时间获取它,并且不想刷新页面,那么您将使用Classes.DataLayer@Mike使用

,这应该是
,它只会显示它是“不必要的”,但它无法识别
var LastID=DataLayer.LastID()需要更多关于LastID方法与调用页的关系的详细信息。它在namespace.Classes.DataLayer中,位于名为DataLayer.cs的文件下,我在这里调用它,但它无法识别它。我一点也不理解AJAX,也不明白为什么它总是说函数LastID不存在。所以你有一个名为“namespace”的名称空间?为什么?我只需要在页面加载时获取它,坦率地说,我一点也不懂ajax。但它无法识别TempData中的LastID()。我可以看看您是如何设置它的吗?请共享一段代码片段。修复方法是在函数中调用它为@TempData['LastId'],因为某种原因它可以在那里工作,但不能在@works now内的文件顶部工作!是的,你可以在.cshtml文件的任何部分使用razor(即使在JavaScript中,尽管这是可取的),只要你有@{}。我很高兴你能找到它。
@{
    var lastId = TempData['LastId'];
  }