SORU
25 Mart 2011, Cuma


Editör/kullanarak bölümleri şablonları Görüntüle

Bir bölümünde JavaScript kodu tüm tutmak istiyorum; benim master düzeni body kapanış etiketi ve sadece en iyi bu konuda gitmek için merak sayfanın hemen önce, MVC tarzı.

Eğer JavaScript doğrudan şablon içine gömmek istiyorum daha jQuery UI DateTime Picker kullanan DisplayTemplate\DateTime.cshtml bir dosya oluşturmak için kullanılan, ama daha sonra orta sayfa hale gelecek.

Normal benim görüşlerim sadece benim master düzeni @section JavaScript { //js here } @RenderSection("JavaScript", false) kullanabilirim ama bu görüntüleme/editör şablonları - herhangi bir fikir çalışmıyor gibi görünüyor?

CEVAP
25 Mart 2011, Cuma


İki yardımcıları ile birlikte devam edebilirsin:

public static class HtmlExtensions
{
    public static MvcHtmlString Script(this HtmlHelper htmlHelper, Func<object, HelperResult> template)
    {
        htmlHelper.ViewContext.HttpContext.Items["_script_"   Guid.NewGuid()] = template;
        return MvcHtmlString.Empty;
    }

    public static IHtmlString RenderScripts(this HtmlHelper htmlHelper)
    {
        foreach (object key in htmlHelper.ViewContext.HttpContext.Items.Keys)
        {
            if (key.ToString().StartsWith("_script_"))
            {
                var template = htmlHelper.ViewContext.HttpContext.Items[key] as Func<object, HelperResult>;
                if (template != null)
                {
                    htmlHelper.ViewContext.Writer.Write(template(null));
                }
            }
        }
        return MvcHtmlString.Empty;
    }
}

ve _Layout.cshtml içinde:

<body>
...
@Html.RenderScripts()
</body>

ve bazı şablonda bir yere:

@Html.Script(
    @<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Anthony

    Eric Anthony

    13 AĞUSTOS 2011
  • NCIX Tech Tips

    NCIX Tech Ti

    2 Ocak 2007
  • sknbp

    sknbp

    16 Kasım 2006