EDIT
Rozważ pisanie niezbędnych zlokalizowanych zasobów do obiektu JavaScript (hash), a następnie używając go do odnośnika za swoimi dynamicznie tworzonych obiektów. Myślę, że to lepsze niż powrót do serwera w poszukiwaniu tłumaczeń. Jest to podobne do dodawania go przez viewdata, ale może być trochę bardziej elastyczne. FWIW, mógłbym uważać zasoby lokalizacyjne za część widoku, a nie część kontrolera.
w widoku:
<script type="text/javascript"
src='<%= Url.Content("~/Resources/Load?translate=Close,Open" %>'></script>
które wyświetli coś jak:
var local = {};
local.Close = "Close";
local.Open = "Open";
Bez argumentów byłoby wyjście całą tłumaczenie skrótu. Używanie argumentów daje możliwość dostosowania go do widoku.
Można by następnie używać go w plikach JavaScript jak:
$(function(){
$('#button').click(function() {
$("<img src=... title='" + local.Close + "' />")
.appendTo("#someDiv")
.click(function() { ... });
});
});
Właściwie nie jestem zbyt wybrzydzały o utrzymanie mój kod JavaScript z moimi poglądami jak długo kod JavaScript jest zlokalizowana w kontenerze . Zazwyczaj ustawię stronę wzorcową w 4 obszarach: tytuł, nagłówek, główne i skrypty. Tytuł, nagłówek i główne przejdź do miejsca, w którym można się spodziewać, a obszar skryptów idzie na dno ciała.
Umieściłem wszystkie moje JavaScript obejmuje, w tym wszelkie dla viewusercontrols, do kontenera skryptów. Wyświetlany kod JavaScript jest dostępny po uwzględnieniu. W razie potrzeby odsyłaję udostępniony kod do skryptów. Zastanawiałem się nad użyciem metody kontrolera do zestawiania skryptów, to znaczy obejmują wiele skryptów za pomocą pojedynczego żądania, ale jeszcze do tego nie doszło.
Ma to tę zaletę, że kod JavaScript jest oddzielny dla czytelności, ale pozwala także w łatwy sposób wstrzyknąć model lub wyświetlić dane do kodu JavaScript w razie potrzeby.
== "Również dobra praktyka, aby zachować javascript oddzielnie od twojej oceny.". <= i to jest problem, dlaczego <%= foo %> nie będzie działać. –
Btw, dlaczego dołączanie obsługi onclick do JS onload jest lepsze? –
Brakowało mi części pytania "generowane przez JS" - właśnie zeskanowane tuż nad nią. W tym przypadku rozważałbym zapisanie zlokalizowanych danych do widoku i ładowanie javascripta z lokalnego obiektu. Napisze ponownie. – tvanfosson