ASP.NET MVC Helper Html Extensions de Rendu et de Leur Nécessaire “inclure”s

J'ai monter un custom Html Helper extension comme suit:

public static string DatePicker(this HtmlHelper helper, string name, string value)
{
        return string.Format(@"<script type='text/javascript'>
$(document).ready(function(){{
    $('#{0}').datepicker({{ 
        changeMonth: true, 
        changeYear:true, 
        dateFormat: 'd-M-yy', 
        firstDay: 1, showButtonPanel: 
        true, 
        showWeek: true 
    }});
}});
</script>
<input type='text' name='{0}' id='{0}' value='{1}'>", name, value);
}

Le problème est que cela exige maintenant la page d'inclure les éléments suivants:

<script src="/Scripts/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.ui.datepicker.min.js" type="text/javascript"></script>

Et quelques autres articles. Les questions sont les suivantes:

  1. Est-il sérieux de traitement
    les frais généraux si j'étais à ces
    articles dans CHAQUE page (comme dans le
    Site.Master par exemple) ainsi
    en niant la nécessité de la HtmlHelper
    pour organiser la "comprend" -
    vu qu'il n'y aurait finissent par être
    environ 20 comporte, pour tous les
    les différents types de widgets jQuery UI
    utilisé sur tout le site.
  2. Si le HtmlHelper trie les
    "comprend", il va ajouter un tous les
    le temps de cette DatePicker est utilisé (souvent
    il y a deux sur une page) personne Ne
    ont une façon de déterminer si oui ou
    pas que l'utilisateur a déjà rendu
    le même type de contrôle sur le
    page, donc pas de re-y compris le même
    bibliothèques jquery lorsque plusieurs
    les instances de la DatePicker (pour
    exemple) sont-ils utilisés?
Vous pouvez également faire la même chose dans MVC 2 avec l'affichage et l'édition de modèles sans codage spécial dans votre point de vue. Découvrez ceci post pour plus de détails.

OriginalL'auteur Jimbo | 2010-05-03