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

  • JonnyEthco

    JonnyEthco

    5 EKİM 2006
  • Migs351

    Migs351

    3 HAZİRAN 2007
  • YAN TV

    YAN TV

    20 EKİM 2011