Я пытаюсь встроить некоторые элементы управления .ascx в библиотеку классов для плагинов для CMS, которую я создаю.
Мой тип проекта - это типичная библиотека класса C # со ссылками, добавленными для system.web.mvc & friends.
Моя проблема возникает при попытке создать строго типизированный пользовательский элемент управления. Мой контроль выглядит так:
<%@ 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. Но в разделе использования файла codebehind, когда я набираю «using System.», Автозаполнение даже не показывает System.Web или System.Web.Mvc в качестве доступных параметров. Как будто их просто нет на диске. Другие проекты могут включать их и ссылаться на них просто отлично. Я полагаю, что это источник моей проблемы, поэтому я надеюсь, что как только я это выясню, все остальное встанет на свои места. Идеи?