2011-01-27 20 views
5

Bir editortemplate kullanıyorum, aşağıdan kısmi kod gösterdim. Komut dosyası etiketi, kısmi görünüm tarafından işlenen her satır için tekrarlar.script in mvc jilet editortemplate

Komut dosyası etiketini sayfa başlığına almanın bir yolu var mı, yoksa en azından bir kez sayfaya dahil mi?

Kodu, kısmi görünümde olduğu gibi gerçekten ait olduğu gibi istiyorum.


@* DisplayTemplates/contact.cshtml *@ 
@model Online.Web.Contacts.Contact 

<script id="xxx"> 
    stuff here. 
</script> 

<tr> 
    <td>@Html.EditorFor(x => x.FirstName)</td> 
</tr> 

cevap

2

Bunu deneyebilirsiniz kullanmayla ilgili:

@model IEnumerable<Online.Web.Contacts.Contact> 
<script id="xxx"> 
    stuff here. 
</script> 
@Html.EditorForModel() 

ve sonra tek kişi için başka editör şablonu:

@model Online.Web.Contacts.Contact 
<tr> 
    <td>@Html.EditorFor(x => x.FirstName)</td> 
</tr> 
+0

Bu bir seçenek olabilir, sadece parçalanmış görünüyor. Her düzenlenebilir ızgara için üç tane şablon koyacağım. Belki de ona tekrar bakmalı ve her şeyi farklı bir şekilde yapmalıyım. – Jim

+0

@Jim, evet betiği ana görünüme koymak daha iyi bir seçenek gibi görünüyor. –

+0

Bundan memnun değilim - ama doğru cevap bu. Şeyleri tamamen farklı bir şekilde hesaba katmaya karar verdim. – Jim

0

Hmm. Bu benim 2c'mdir, ancak eğer betiğin tekrar etmesi gerekmiyorsa, şablon doğru yer değil midir?

Nasıl Html Helper

+0

bir seçenek olabilir. Komut dosyası etiketini bir şekilde başlığa eklemek için yardımcı olmak mümkün mü? Burada yapmaya çalıştığım şey, satır gösterge tablosunda bir java script düzenleme şablonu. Düzenleme şablonu, satıra aittir. * modele * değil, bu yüzden bu anlamda doğru yerde. – Jim

0

Sonunda bunun için bir çözüm olduğunu En azından ASP.NET MVC3'te güvenilir bir şekilde çalışıyor gibi görünüyor. İşte adresim editörü şablonundan bir alıntı:

@if(!Context.Items.Contains("AddressScriptsDone")) 
{ 
    Context.Items.Add("AddressScriptsDone", "true"); 
    <script type="text/javascript" src="@Url.Content("~/Scripts/Address.js?" + _Config.WebAppVersion)"></script> 
} 

Context.Items bu amaç için yapılmış gibi görünüyor. Aynı EditorTemplate'e yapılan çoklu aramalarda da devam eder, ancak sadece bir tam sayfa isteği için. Bir yardımcı kullanarak

İlgili konular