System.ArgumentException: Type "ASP.modules (...) _ascx" cannot be resolved.
Hello team,
Im experimentig an issue since the last week.
This custom module used to work fine, but doing some updates something got messed up
and it throws the error described in the attached pic.
can you tell me what's can be the problem?
Thanks.
-Mario Araya-
Hello Mario,
I'm not sure how this happened. Do you have an embedded .ascx template in your custom control? If you send us the source for your control that would help us a lot.
Regards,Thanks.
Here i put some of the source. please tell me if there's something else needed.
SystemConfig.config
<
applicationModules
>
...
<
add
title
=
"Banner Slideshow"
type
=
"SitefinityWebApp.Modules.BannerMultiple.BannerMultipleModule"
startupType
=
"OnApplicationStart"
version
=
"4.2.1650.0"
name
=
"BannerSlideshow"
/>
</
applicationModules
>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="BannerMultipleAdmin.ascx.cs" Inherits="SitefinityWebApp.Modules.BannerMultiple.BannerMultipleAdmin" %>
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Web.UI.Fields" TagPrefix="sf" %>
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Web.UI" TagPrefix="telerik" %>
<
script
src
=
"/App_Themes/StGeorgeTheme/js/jquery-1.6.2.min.js"
type
=
"text/javascript"
></
script
>
<
script
src
=
"/Modules/BannerMultiple/colorbox/jquery.colorbox-min.js"
type
=
"text/javascript"
></
script
>
<
link
href
=
"/Modules/BannerMultiple/colorbox/colorbox.css"
rel
=
"stylesheet"
type
=
"text/css"
/>
<
link
href
=
"/App_Themes/StGeorgeTheme/CSS/moduloBannerMultiple.css"
rel
=
"stylesheet"
type
=
"text/css"
/>
<
script
type
=
"text/javascript"
>
var radio;
var checkbox;
var txtLinkId;
function targetChanged(sender)
radio = $(sender);
if (radio.children().val() == "radioLbox")
radio.parent().next().show();
else
radio.parent().next().hide();
function sinLinkClicked(sender)
checkbox = $(sender).children(":first-child");
if (checkbox.is(':checked'))
checkbox.parent().parent().children("input").val("");
checkbox.parent().parent().children("input").attr("disabled", true);
checkbox.parent().parent().next().next().next().hide();
checkbox.parent().parent().next().next().hide();
checkbox.parent().parent().next().hide();
else
checkbox.parent().parent().children("input").removeAttr("disabled");
checkbox.parent().parent().next().next().next().show();
checkbox.parent().parent().next().next().show();
checkbox.parent().parent().next().show();
//radioButtons
$("input:radio:checked").each(function ()
targetChanged($(this).parent());
);
function urlPop(url, w, h)
window.top.$.colorbox( href: url, width: '' + w + 'px', height: '' + h + 'px', iframe: true );
function muestraArbol(textbox)
txtLinkId = $(textbox).attr('Id');
urlPop('/Modules/BannerMultiple/muestraArbolPaginas.aspx', '640', '480');
$(document).ready(function ()
$("input:checkbox:checked").each(function ()
sinLinkClicked($(this).parent());
);
$(".checkSinLink").click(function ()
sinLinkClicked($(this));
)
$(".radioTarget").click(function ()
targetChanged($(this));
)
);
</
script
>
<
h1
class
=
"sfBreadCrumb"
>
Banner Slideshow
</
h1
>
<
telerik:RadWindowManager
ID
=
"RadWindowMgr"
runat
=
"server"
EnableShadow
=
"true"
></
telerik:RadWindowManager
>
<
sitefinity:formManager
id
=
"formmanager"
runat
=
"server"
/>
<
div
class
=
"sfMain sfClearfix"
>
<
div
class
=
"sfMain sfClearfix"
>
<
div
class
=
"sfAllToolsWrapper"
>
<
div
class
=
"sfAllTools"
>
<
div
class
=
"sfActions"
>
<!-- Toolbox -->
<
ul
>
<
li
class
=
"sfMainAction"
>
</
li
>
</
ul
>
</
div
>
</
div
>
</
div
>
<
div
class
=
"sfWorkArea sfClearfix"
>
<
div
class
=
"sfForm sfExpandedForm sfFirstForm"
style
=
"width:50%;margin: 0 auto;"
>
<
div
class
=
"sfFormIn"
>
<
div
class
=
"rgTopOffset"
>
<!-- Workspace -->
<
br
/>
<
div
>
<
telerik:RadAsyncUpload
runat
=
"server"
ID
=
"AsyncUpload1"
TargetFolder
=
"~/Modules/BannerMultiple/Imagenes/"
MultipleFileSelection
=
"Automatic"
AllowedFileExtensions
=
"jpeg,jpg,gif,png"
>
<
Localization
Select
=
"Seleccionar"
/>
</
telerik:RadAsyncUpload
>
</
div
>
<
div
>
<
asp:LinkButton
class
=
"sfLinkBtn sfSave"
ID
=
"LinkButton1"
runat
=
"server"
onclick
=
"btnSubirFotos_Click"
>
<
strong
class
=
"sfLinkBtnIn"
>Subir Fotos</
strong
>
</
asp:LinkButton
>
</
div
>
<
br
/><
br
/>
<
div
class
=
"moduloBanner"
>
<
asp:Repeater
ID
=
"repeaterImagenes"
runat
=
"server"
>
<
ItemTemplate
>
<
div
class
=
"label"
>Imagen</
div
>
<
div
><
telerik:RadTextBox
ID
=
"imgName"
Width
=
"80%"
runat
=
"server"
ReadOnly
=
"true"
></
telerik:RadTextBox
></
div
>
<
div
class
=
"label"
>Link</
div
>
<
div
class
=
"link RadInput RadInput_Default"
>
<
asp:TextBox
Width
=
"80%"
onclick
=
"muestraArbol(this);"
ID
=
"txtLink"
runat
=
"server"
class
=
"riTextBox riRead"
/>
<
asp:CheckBox
ID
=
"checkSinLink"
class
=
"checkSinLink"
Text
=
"Sin link"
runat
=
"server"
Checked
=
"true"
/>
</
div
>
<
div
class
=
"label"
>Abrir link</
div
>
<
div
>
<
asp:RadioButton
ID
=
"radioSelf"
class
=
"radioTarget"
Text
=
"En la misma ventana"
GroupName
=
"linkTarget"
runat
=
"server"
Checked
=
"true"
/>
<
asp:RadioButton
ID
=
"radioBlank"
class
=
"radioTarget"
Text
=
"En una nueva ventana"
GroupName
=
"linkTarget"
runat
=
"server"
/>
<
asp:RadioButton
ID
=
"radioLbox"
class
=
"radioTarget"
Text
=
"En un lightbox"
GroupName
=
"linkTarget"
runat
=
"server"
/>
</
div
>
<
div
id
=
"size_lightbox"
runat
=
"server"
class
=
"size_lightbox"
>
<
div
class
=
"label"
>Tamaño del lightbox</
div
>
<
div
class
=
"divIzq"
>Ancho:<
telerik:RadNumericTextBox
ID
=
"lboxWidth"
Width
=
"30px"
MaxLength
=
"4"
MaxValue
=
"1920"
runat
=
"server"
>
<
NumberFormat
AllowRounding
=
"false"
KeepNotRoundedValue
=
"true"
DecimalDigits
=
"0"
/>
</
telerik:RadNumericTextBox
>px</
div
>
<
div
class
=
"divDer"
>Alto:<
telerik:RadNumericTextBox
ID
=
"lboxHeight"
Width
=
"30px"
MaxLength
=
"4"
MaxValue
=
"1080"
runat
=
"server"
>
<
NumberFormat
DecimalDigits
=
"0"
/>
</
telerik:RadNumericTextBox
>px</
div
>
</
div
>
<
div
class
=
"label sfFormSeparator"
style
=
"display:block"
></
div
>
</
ItemTemplate
>
</
asp:Repeater
>
<
br
/>
<
asp:LinkButton
class
=
"sfLinkBtn sfSave"
ID
=
"btnGuardarBanner"
runat
=
"server"
onclick
=
"btnGuardarBanner_Click"
>
<
strong
class
=
"sfLinkBtnIn"
>Guardar Banner</
strong
>
</
asp:LinkButton
>
<
a
href="<%= ResolveUrl(Telerik.Sitefinity.Web.SiteMapBase.GetActualCurrentNode().ParentNode.Url)%>"> Cancelar</
a
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
using System.Web.UI.HtmlControls;
using SitefinityWebApp.Data;
namespace SitefinityWebApp.Modules.BannerMultiple
public partial class BannerMultipleAdmin : System.Web.UI.UserControl
StGeorgeEntities context = new StGeorgeEntities();
protected void Page_Load(object sender, EventArgs e)
if (!IsPostBack)
CargarDesdeBD();
/// <summary>
/// Carga data desde BBDD si existe
/// </
summary
>
private void CargarDesdeBD()
int nImagenesBD = context.BannerMultiples.Count();
if (nImagenesBD < 1)
return;
CrearRepeaterImagenes(nImagenesBD);
int i = 0;
foreach (var banner in context.BannerMultiples.ToList())
if (banner.LinkUrl.IsNullOrEmpty())
((CheckBox)repeaterImagenes.Controls[i].FindControl("checkSinLink")).Checked = true;
((RadTextBox)repeaterImagenes.Controls[i].FindControl("imgName")).Text = banner.ImgPath;
((TextBox)repeaterImagenes.Controls[i].FindControl("txtLink")).Text = banner.LinkUrl;
CheckRadioTarget(i, banner.LinkTarget);
((RadNumericTextBox)repeaterImagenes.Controls[i].FindControl("lboxWidth")).Text = banner.lboxWidth.ToString();
((RadNumericTextBox)repeaterImagenes.Controls[i].FindControl("lboxHeight")).Text = banner.lboxHeight.ToString();
i++;
private string GetRadioTarget(int indexRepeater)
if (((RadioButton)repeaterImagenes.Controls[indexRepeater].FindControl("radioSelf")).Checked)
return "En la misma ventana";
else if (((RadioButton)repeaterImagenes.Controls[indexRepeater].FindControl("radioBlank")).Checked)
return "En una nueva ventana";
else if (((RadioButton)repeaterImagenes.Controls[indexRepeater].FindControl("radioLbox")).Checked)
return "En un lightbox";
return "";
private void CheckRadioTarget(int indexRepeater, string valor)
((HtmlControl)repeaterImagenes.Controls[indexRepeater].FindControl("size_lightbox")).Style.Add("display", "none");
if (valor == "En la misma ventana")
((RadioButton)repeaterImagenes.Controls[indexRepeater].FindControl("radioSelf")).Checked = true;
else if (valor == "En una nueva ventana")
((RadioButton)repeaterImagenes.Controls[indexRepeater].FindControl("radioBlank")).Checked = true;
else if (valor == "En un lightbox")
((RadioButton)repeaterImagenes.Controls[indexRepeater].FindControl("radioLbox")).Checked = true;
//muestra DIV_TAMAÑO_LIGHTBOX
((HtmlControl)repeaterImagenes.Controls[indexRepeater].FindControl("size_lightbox")).Style.Add("display", "block");
private void RemoverDataBanner()
foreach (var item in context.BannerMultiples)
context.BannerMultiples.DeleteObject(item);
Hi Mario,
I see you have an .ascx template. Is it marked as an EmbeddedResource in your project? Do you use a proper virtual path setting pointing the the assembly where your module is defined? It looks like the error is happening because Sitefinity can't find the .ascx template when rendering the module.
Regards,Hi Lubomir, thanks for answer
but none of my module's .ascx is defined as "EmbeddedResource" in visual studio and all work fine except this one :( .... also, the virtual path that i have defined i don't use it in the modules, because all are in the same web project.
this behavior happens only in a pre-production server not in my local machine. the .config files are the same
Please help.
-Thanks-
Mario
Hi Mario,
I would really need your entire module project? You can open a support ticket and attach the project there, since these are our forums.
Greetings,
Lubomir Velkov
the Telerik team