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

  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007
  • MugenPowerBatteries

    MugenPowerBa

    8 EKİM 2010
  • Sams Page :D

    Sams Page :D

    15 Mart 2009