mvc kendo ejemplos demos controles c# javascript telerik telerik-mvc

kendo - telerik c# mvc



Telerik MVC ScriptRegistrar la duplicaciĆ³n de javascript (1)

Estoy intentando registrar algunos javascript en mi opinión, y parece que tengo un problema. En mi página maestra, en la parte inferior tengo:

@( Html.Telerik().ScriptRegistrar() .OnDocumentReady(@<text> // Open the hidden window when the feedback-link is clicked $(''#feedback-link'').click(function(e) { e.preventDefault(); $(''#FeedbackWindow'').data(''tWindow'').center().open(); }); </text>) )

En mi opinión, quiero un javascript específico para ver, así que tengo:

@(Html.Telerik().ScriptRegistrar().OnDocumentReady( @<text> // Upon contact selection change, update the contact sidebar summary $(''#contactlist'').change(function() { alert(''Selected id'' + $(this).val()); }); </text>) )

Desafortunadamente, esto está provocando que el javascript de mi vista se declare tanto en la vista de MVC como en la página maestra cuando se procesa la página final. ¿Cómo puedo lograr que esto solo registre el script una vez?


Como dije en mi respuesta en el foro, el ScriptRegistrar se publicará dos veces porque así se lo dijo. La expresión @() Razor dará como resultado su contenido, mientras que @{ } se ejecutará. En su caso, necesita usar @{ } para el script específico:

@{ Html.Telerik().ScriptRegistrar().OnDocumentReady( @<text> // Upon contact selection change, update the contact sidebar summary $(''#contactlist'').change(function() { alert(''Selected id'' + $(this).val()); }); </text>); }

También tenga en cuenta que el bloque @{ } requiere un punto y coma.