如何修复 SharePoint WebPart 代码后面的当前上下文中不存在变量?

Posted

技术标签:

【中文标题】如何修复 SharePoint WebPart 代码后面的当前上下文中不存在变量?【英文标题】:How to fix variable does not exist in current context in SharePoint WebPart code behind? 【发布时间】:2016-01-27 13:24:06 【问题描述】:

在为 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# 专家,这可能从我的代码中可以看出。

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

您需要为 SPContext 和 SPUtility 提供完全限定的命名空间,分别为 Microsoft.SharePoint.SPContextMicrosoft.SharePoint.Utilities.SPUtility

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

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

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

【讨论】:

非常感谢您的出色回答。

以上是关于如何修复 SharePoint WebPart 代码后面的当前上下文中不存在变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Sharepoint Wiki 页面上添加 WebPart?

如何限制 Sharepoint 2010 WebPart 中 HtmlTable 中单元格的宽度?

如何使用 Visual Studio 2013 开发 Sharepoint Webpart

如何将 WebPart 添加到 SharePoint 网站中的所有页面?

如何使用 AngularJS 初始化 SharePoint 脚本编辑器 WebPart 内容

如何在 SharePoint 2010 沙盒可视 WebPart 上创建可编辑属性