Я использую ASP.NET с C # 2.0.Я создал несколько объектов для базы данных, и у каждого из этих объектов есть свойства, которые можно вызывать по-своему или вызывать аналогичным образом, и создать из них RESTful JSON API.
У меня естьна этом сайте я люблю называть «модули» множеством табулатурных функций - функция модуля заключается в преобразовании данных в HTML для отображения на странице.В идеале это должно быть сделано в коде C # на стороне сервера для загрузки первой вкладки, а затем используйте Ajax для загрузки других при нажатии вкладок, однако для старых браузеров и поисковых систем вкладка по-прежнему является ссылкой, которая будет загружатьта же сторона сервера HTML-кода.
В настоящее время я пишу код JavaScript полностью отдельно от кода C #, который преобразует каждый модуль в HTML, но метод практически тот же, просто другой язык.Аналогично этому примеру.
код C #
public override string GetHtml()
{
IJsonObjectCollection<Person> response = ((Village)page).People;
string html = "<div id=\"test\">";
foreach (Person person in response)
{
html += "<div class=\"person\">";
html += person.Name;
if(canEdit) html += "*";
html += "</div>";
}
return html + "</div>";
}
код JavaScript
function getHtml() {
JsonRequest('/json/villages/1/people', function(response) {
var html = '<div id="test">';
for (int i = 0; i < response.length; i++)
{
var person = response[i];
html += '<div class="person">';
html += person.name;
if(canEdit) html += '*';
html += '</div>';
}
return html + '</div>';
});
}
Возможно, вы увидите, гдеЯ собираюсь с этим вопросом.Что было бы наиболее эффективным способом сделать это?Я думал о нескольких разных альтернативах -
1. Каждый ModuleToHtmlMethod может быть классом, который определяет метод преобразования этого объекта данных в HTML.Я попытался это сделать, но остановился, потому что становился слишком сложным.
2. Напишите свой собственный язык сценариев, который можно интерпретировать как C #, но также «скомпилировать» в код JavaScript.
3. Просто напишите партию в C # и используйте Ajax, чтобы просто запросить содержимое HTML из C #
4. Держите код отдельно и пишите каждыйметод дважды.
Я хотел бы, в конечном итоге, позволить другим разработчикам писать эти «модули», поэтому, возможно, вариант 2 является лучшим вариантом?