Я начинаю задумываться, возможно ли это вообще. Это кажется таким простым.
У меня есть опубликованный веб-проект. Я хочу добавить некоторые файлы .ascx (с файлами .cs & designer.cs) на этот опубликованный веб-сайт. Это простые пользовательские элементы управления, которые обращаются к методам, уже являющимся частью исходного приложения.
Вопрос? Можно ли просто отбросить их в опубликованном веб-проекте, не создавая всего решения? Если нет, то почему?
Когда я помещаю эти файлы и запускаю свое приложение, я получаю сообщение об ошибке:
«Ошибка разбора: не удалось загрузить тип« имя моего пространства имен пользовательских элементов управления »».
Не так много кода, чтобы показать, так что это все, что у меня есть.
Default.aspx
<%@ Page Language="C#" MasterPageFile="~/MasterPages/TwoColumn.master" AutoEventWireup="true"
Inherits="ApplicationName.Web.Default" CodeBehind="Default.aspx.cs" %>
<%@ Register TagPrefix="uc1" TagName="CustomControl" Src="~/Controls/Custom/CustomControl.ascx" %>
<asp:Content ID="content" contentplaceholder="cph" runat="Server">
<uc1:CustomControl ID="cc1" runat="server" CustomProperty="Hello World" />
</asp:Content>
CustomControl.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CustomControl.ascx.cs"
Inherits="ApplicationName.Web.Controls.Custom.CustomControl" %>
<asp:PlaceHolder ID="ph1" runat="server></asp:PlaceHolder>
CustomControl.ascx.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace ApplicationName.Web.Controls.Custom
{
public partial class CustomControl : System.Web.UI.UserControl
{
///My logic
}
}
Снова это кажется таким легким. Что мне не хватает? Или это невозможно? Благодаря.
UPDATE:
Я понял это. Данный сценарий возможен. Проблема не в пространстве имен, как предполагает сообщение об ошибке. Скорее это декларация кода. Файлы с выделенным кодом для файлов любого типа компилируются при публикации приложения. Я все еще не могу понять, почему он выглядит редактируемым, когда вы просматриваете веб-каталог, я думаю, он будет сохранен в файле .dll или что-то в этом роде. Может быть, кто-то может пролить свет на это.
В любом случае, замена выделенного кода кодом-файлом устраняет проблему, так как файлы-коды не компилируются и, следовательно, читаются во время выполнения приложения.
Некоторые полезные ссылки можно найти здесь и здесь .