C# 从.CS文件中访问数据库记录,效果不太好
我需要做一些db的事情,我宁愿在一个单独的文件中有扩展方法,而不是将它们全部放在cshtml文件中 但是,我得到了以下错误: 编译器错误消息:CS0120:An 对象的引用是必需的 非静态字段、方法或属性 'UserOperations.GetFirstNamestring' 这让我想到了这一行:C# 从.CS文件中访问数据库记录,效果不太好,c#,.net,methods,razor,C#,.net,Methods,Razor,我需要做一些db的事情,我宁愿在一个单独的文件中有扩展方法,而不是将它们全部放在cshtml文件中 但是,我得到了以下错误: 编译器错误消息:CS0120:An 对象的引用是必需的 非静态字段、方法或属性 'UserOperations.GetFirstNamestring' 这让我想到了这一行: Line 165: <li><a href="@Href("myaccount/account.cshtml")">Hi, @UserOpera
Line 165: <li><a href="@Href("myaccount/account.cshtml")">Hi, @UserOperations.GetFirstName(WebSecurity.CurrentUserId)</a></li>
我使用的代码是:CSHTML
@if(WebSecurity.IsAuthenticated)
{
<li><a href="@Href("myaccount/account.cshtml")">Hi, @UserOperations.GetFirstName(WebSecurity.CurrentUserId.ToString())</a></li>
}
else
{
<li><a href="@Href("myaccount/Login.cshtml")">My Account</a>
<ul>
<li><a href="@Href("myaccount/Login.cshtml")">Sign In</a></li>
<li><a href="@Href("myaccount/Register.cshtml")" title="It's FREE!">Create Account</a></li>
</ul>
</li>
}
和…:UserOperations.CS
using System;
using WebMatrix.WebData;
using WebMatrix.Data;
using System.Collections.Generic;
using System.Web;
/// <summary>
/// User & Database-based operations in this file only.
/// </summary>
public class UserOperations
{
public string GetFirstName(string CurrentUserID)
{
WebSecurity.InitializeDatabaseConnection("eee", "www", "www", "www", true);
var database = Database.Open("OSF");
var SelectQueryString = "SELECT FirstName FROM UserProfile WHERE FirstName = " + CurrentUserID;
var result = database.Query(SelectQueryString);
return result.ToString();
}
}
我不明白错误想说什么。我总是在C桌面应用程序中做这类事情,我不明白我是怎么做的,或者我做错了什么?有人能帮忙吗
谢谢大家! 您没有实例化该类,因此需要创建它 但更典型的是,您将拥有一个用户类,您将在控制器中创建该类的实例,并将其传递给您的模型。这将帮助您避免对所需的每一条信息进行谨慎的查询 您可能需要调查。您的UserOperations类应该如下所示
public static class UserOperations
{
public static string GetFirstName(this string CurrentUserID)
{
...
}
}
哎呀。谢谢你指出这一点;我忘了实例化它。来吧您需要在类中使用变量。因为这似乎是一个网站,你需要在正确的范围内创建变量。Chillax伙计,前几天我才开始使用Razor/WebMatrix
public static class UserOperations
{
public static string GetFirstName(this string CurrentUserID)
{
...
}
}