2011-01-27 14 views
5

Używam pliku editortemplate, pokazałem kod częściowy poniżej. Znacznik skryptu powtarza się dla każdego z wierszy renderowanych w widoku częściowym.skrypt w maszynce do golenia na maszynkę do golenia editortemplate

Czy istnieje sposób, aby umieścić znacznik skryptu w nagłówku strony, lub przynajmniej umieścić go na stronie tylko raz?

Chciałbym kod w częściowym widoku, ponieważ jest tam, gdzie naprawdę należy.


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

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

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

Odpowiedz

2

można spróbować to:

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

a następnie inny szablon edytor dla pojedynczego kontaktu:

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

To może być opcja, wydaje się tylko fragmentaryczna. Zamierzam zakodować trzy szablony dla każdej edytowalnej siatki. Być może powinienem ponownie na to spojrzeć i zrobić wszystko inaczej. – Jim

+0

@ Jim, tak umieszczenie skryptu w głównym widoku wydaje się lepszym rozwiązaniem. –

+0

Nie jestem z tego zadowolony - ale jest to poprawna odpowiedź. Postanowiłem zrównać sytuację z zupełnie innym sposobem. – Jim

0

Hmm. To jest mój 2c, ale jeśli skrypt nie powinien się powtarzać, to szablon nie jest właściwym miejscem?

Jak o użyciu Html Helper

+0

używanie pomocnika może być opcją. Czy jest możliwe, aby pomocnika, aby jakoś dodać tag skryptu do nagłówka? Co próbuję tutaj zrobić, to szablon edycji skryptu Java w wierszu displaytemplate. Szablon edycji należy do wiersza. * nie * do modelu, więc w tym sensie jest we właściwym miejscu. – Jim

0

I wreszcie rozwiązanie dla tego, że wydaje się działać niezawodnie, przynajmniej w ASP.NET MVC3. Oto fragment szablonu mojego edytora adresów:

Wygląda na to, że elementy Context.Items zostały wykonane w tym celu. Trwa on przez wiele połączeń do tego samego EditorTemplate, ale tylko dla jednego pełnego żądania strony.

Powiązane problemy