如何修复SharePoint Web部件代码隐藏中当前上下文中不存在的变量

本文关键字:上下文 不存在 变量 隐藏 SharePoint 何修复 Web 代码 | 更新日期: 2023-09-27 18:19:41

在为SharePoint 2010开发Web部件时,我是个十足的傻瓜。我创建了一个Web部件,上面有按钮。当单击该按钮时,我希望它将用户重定向到另一个页面。这似乎是一个简单的操作,但我遇到了障碍。

在我的MyWebPart.ascx.cs文件中,我有以下代码:

protected void Button_Click(object sender, EventArgs e)
    {
        // Get the values the user inputted
        try
        {
            String category = SearchBySelector.SelectedValue;
            String keyword = SearchField.Text;
            SPWeb root = SPContext.Current.RootWeb.Url;
            String url = root + "/path/to/site.aspx?category=" + category + "&keyword=" + keyword;
            SPUtility.Redirect(url);
        }
        catch (Exception ex)
        {
            StatusLabel.ForeColor = "#FF0000";
            StatusLabel.Text = "Exception encountered." + ex.Message;
        }
    }

我遇到的问题是,SPContext(和SPUtility)在这个上下文中没有被识别。我该如何解决这个问题?我想我需要一些包容?我也不是C#专家,这可能从我的代码中可以明显看出。

如有任何帮助,我们将不胜感激。

如何修复SharePoint Web部件代码隐藏中当前上下文中不存在的变量

SPContext和SPUtility都需要完全限定的命名空间,它们分别是Microsoft.SharePoint.SPContextMicrosoft.SharePoint.Utilities.SPUtility

您可以在代码中使用这些完全限定的类名,也可以在代码文件的顶部添加两个using语句:

using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;

如果Visual Studio仍然因为无法识别这些类型或命名空间而对您大发雷霆,那么您需要确保Microsoft.SharePoint程序集已添加到项目中的引用中。您可以从Visual Studio中的"解决方案资源管理器"窗口添加引用。