WebResource 404 Hell - non può ottenere JavaScript incluso nel Web Part
-
27-10-2019 - |
Domanda
Ho cercato davvero difficile per includere un file JavaScript con il mio WebPart come una risorsa. La classe parte web e il file flexidgrid.js sono entrambi nel livello principale del progetto. La web part viene creato in DisplaySearchResults.js:
namespace DisplaySearchResults
{
public class DisplaySearchResults : WebPart
{
### Hidden Irrelevant Stuff Here ###
protected override void CreateChildControls()
{
### Hidden Irrelevant Stuff Here ###
### Load JavaScript Code Here ###
string scriptURL = Page.ClientScript.GetWebResourceUrl(typeof(DisplaySearchResults), "DisplaySearchResults.flexigrid.js");
ClientScriptManager cs = Page.ClientScript;
if (!cs.IsClientScriptBlockRegistered(ByeByeIncludeScriptKey))
cs.RegisterClientScriptInclude(this.GetType(), ByeByeIncludeScriptKey, scriptURL);
}
### Hidden Irrelevant Stuff Here ###
}
}
I AssemblyInfo.cs per DisplaySearchResults aspetto:
[assembly: WebResource("DisplaySearchResults.flexigrid.js", "text/javascript")]
Ma per qualche ragione il file WebResource.axd viene ancora in su come 404.
Soluzione 2
I aveva già impostato il Risorsa incorporata - si è scoperto che mi serviva il nome dell'Assemblea completo - Company.UI.Web.DisplaySearchResults - che ho ricevuto da un clic destro sul menu delle proprietà del progetto. Nella scheda applicazione, v'è il nome proprio Assemblea.
Così, invece di:
[assembly: WebResource("DisplaySearchResults.flexigrid.js", "text/javascript")]
avrei dovuto mettere:
[assembly: WebResource("Company.UI.Web.DisplaySearchResults.flexigrid.js", "text/javascript")]
Altri suggerimenti
Assicurarsi che costruiscono del file di azione è impostato su "Risorsa incorporata" nelle proprietà per quel file.