Mają cię rozważyć użycie $.ajax
w połączeniu z ASP.NET WebMethods? Trudno zasugerować bardziej konkretne rozwiązanie tego problemu bez zrozumienia, w jaki sposób Twój JavaScript/jQuery zużyje/przetworzy zasoby. Zakładam, że są zorganizowane w logiczne grupy (lub mogą być), w których można zwrócić kilka ciągów zasobów, które należą do jednej strony.
Zakładając, że możesz napisać bardzo prostą klasę C# lub użyć Dictionary<string, string>
- aby zwrócić dane z ASP.NET WebMethod. Wyniki wyglądałyby tak:
[WebMethod]
public Dictionary<string, string> GetPageResources(string currentPage)
{
// ... Organizational stuff goes here.
}
Zawsze rozdziela moje wywołania AJAX na osobne pliki/obiekty .js; że będzie wyglądać następująco:
function GetPageResources (page, callback)
$.ajax({ // Setup the AJAX call to your WebMethod
data: "{ 'currentPage':'" + page + "' }",
url: /Ajax/Resources.asmx/GetPageResources, // Or similar.
success: function (result) { // To be replaced with .done in jQuery 1.8
callback(result.d);
}
});
Następnie w js zawartych na stronie, powinieneś być w stanie konsumować, że dane takie jak:
// Whatever first executes when you load a page and its JS files
// -- I assume that you aren't using something like $(document).ready(function() {});
GetPageResources(document.location, SetPageResources);
function SetPageResources(resources) {
for (currentResource in resources) {
$("#" + currentResource.Key).html(currentResource.Value);
}
}
Firma Microsoft zapewnia lokalizację po stronie klienta w ramach środowiska ASP.NET AJAX. Powinieneś rzucić okiem na http://msdn.microsoft.com/en-us/magazine/cc135974.aspx i http://www.asp.net/web-forms/tutorials/aspnet-ajax/understanding-asp- net-ajax-localization –