我正在尝试将一些 .ascx 控件构建到我正在构建的 CMS 插件的类库中。
我的项目类型是一个典型的 C# 类库,为 system.web.mvc 和朋友添加了引用。
我的问题出现在尝试创建强类型用户控件时。我的控件如下所示:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<TagCloudWidget.Models.TagCloudWidgetData>" %>
即使我在 namespace 下的同一个项目中有另一个公共类TagCloudWidget.Models
,我似乎无法让.ascx
文件识别这一点。我试过包含Imports
命名空间,但它只是抱怨命名空间不存在。TagCloudData 类文件如下所示:
namespace TagCloudWidget.Models
{
public class TagCloudWidgetData
{
public IList<TagCount> TagCounts { get; set; }
public ContentTypes ContentType;
public string Controller;
public string Action;
public TagCloudWidgetData(IList<TagCount> tagCounts, ContentTypes contentType, string controller, string action)
{
TagCounts = tagCounts;
ContentType = contentType;
Controller = controller;
Action = action;
}
}
}
你能看出我做错了什么吗?
由于下面的建议,我尝试添加一个代码隐藏文件。我想我更接近找出问题所在,但我仍然无法找到解决方案。在项目中,我添加了对 System.Web 和 System.Web.Mvc 的引用。但是,在代码隐藏文件的 using 部分中,当我键入“using System.”时,自动完成功能甚至不会将 System.Web 或 System.Web.Mvc 显示为可用选项。就好像它们不存在于光盘上。其他项目能够包含它们并很好地引用它们。我想这是我问题的根源,所以我希望一旦我弄清楚这一点,其余的就会到位。想法?