2

J'utilise un EditorTemplate DateTime.ascx dans mon projet ASP.NET MVC 2.Trop de fichiers JavaScript et CSS sur ma page maître ASP.NET MVC 2?

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime>" %> 
<%: Html.TextBox(String.Empty, Model.ToString("M/dd/yyyy h:mm tt")) %> 
<script type="text/javascript"> 
    $(function() { 
     $('#<%: ViewData.TemplateInfo.GetFullHtmlFieldId(String.Empty) %>').AnyTime_picker({ 
      format: "%c/%d/%Y %l:%i %p" 
     }); 
    }); 
</script> 

Il utilise la bibliothèque JavaScript jQuery pour Any+Time™ par Andrew M. Andrews III. J'ai ajouté ces fichiers de bibliothèque (anytimec.js et anytimec.css) à la section <head> de ma page maître.

Plutôt que d'inclure ces JavaScript et Cascading Style Sheet fichiers sur chaque page de mon site web, comment puis-je inclure place les fichiers .js et .css uniquement sur les pages qui en ont besoin --pages que modifier un type DateTime valeur?

+0

question connexe: http://stackoverflow.com/questions/2530623 –

+0

question connexe: http: // stackoverflow. com/questions/2877927 –

Répondre

1

idée d'abord qui vient à l'esprit =>

Modèle:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime>" %> 
<%: Html.TextBox(String.Empty, Model.ToString("M/dd/yyyy h:mm tt")) %> 
<script type="text/javascript"> 
    $(function() { 
     MakeSureAnyTimeIsIncluded(); 
     $('#<%: ViewData.TemplateInfo.GetFullHtmlFieldId(String.Empty) %>').AnyTime_picker({ 
      format: "%c/%d/%Y %l:%i %p" 
     }); 
    }); 
</script> 

masterpage ou d'un fichier JS externe partagé:

function MakeSureAnyTimeIsIncluded(){ 
    if (!anyTimeIsIncluded) 
     //document.write(<script src="correct url") something like that 
     anyTimeIsIncluded=true; 
    } 
+0

Cela pourrait fonctionner. –

1

Dans votre maître:

<asp:ContentPlaceHolder ID="Scripts" runat="server" /> 

Et dans les vues (ASPX) qui utilisera le EditorTemplate/plugin:

<asp:Content ID="indexScripts" ContentPlaceHolderID="Scripts" runat="server"> 
    <script type="text/javascript" src="anytime.js"></script> 
</asp:Content> 
+0

Chaque vue doit savoir si son modèle inclut une propriété de type DateTime. –