我试图建立一些的.ascx控制到一个类库插件的CMS我建立。

我的项目类型是典型的C#类libary与添加system.web.mvc和朋友的引用。

我的问题出现在试图建立一个强类型的用户控件。我的控制是这样的:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<TagCloudWidget.Models.TagCloudWidgetData>" %>

虽然我在命名空间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的引用。但是,在代码隐藏文件的使用区间,当我输入“使用系统”,自动完成甚至不显示的System.Web或System.Web.Mvc作为可用的选项。这就像他们只是不上盘存在。其他项目可以包括他们和引用它们就好了。我想这是我的问题的根源,所以我希望,一旦我这出其余的将只是水到渠成。想法?

有帮助吗?

解决方案

我已经受够了,我开始使用测试版的应用程序类似的问题。我发现,工作的唯一的事情是创建该控件的代码隐藏文件和代码隐藏定义继承。然后在控制,有它在你的后台代码中定义的类继承。在新的项目中,使用1.0从头开始建立的,我没有这个问题 - 但后来我又没有在库中定义我的部分类,无论是

其他提示

成功!不知怎的,我的.ascx文件已经被标记在文件属性,而不是“编译”,“内容”。一旦予固定的,我现在可以参考必要组件和加载/没有问题运行的插件。感谢您的代码隐藏文件前端!

(更新)等尖端昨晚我想通了,是我的插件还必须在应用程序的/ bin目录,以及我/小部件目录,否则我得到一个“无法加载类型...”异常。我还没有想出如何连接起来ASP.NET MVC所以我只需要有它在1个地方,但是当我做,我会后回到这里。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top