Пользовательская логика рендеринга на стороне сервера + MVC + Ajax - PullRequest
1 голос
/ 18 мая 2010

У меня есть некоторая логика рендеринга для пользовательской разметки (a'la bbcode, но not bbcode). Так что, когда я получаю материал из БД, я тогда вызываю MyRender.ToHTML (model.text) ...

Теперь, что я делаю сегодня, у меня просто есть форма ниже, я делаю пост, добавляю элемент и возвращаю тот же вид. У меня вопрос - как это сделать с помощью ajax? Должен ли я создать элемент управления и вернуть HTML a'la winforms? Это сексуально? Как ты делаешь что-то подобное? Или я должен бросить это? Может быть, дублировать логику рендеринга с JavaScript?

1 Ответ

1 голос
/ 18 мая 2010

Использование jQuery - самый простой способ сделать это. Способ работы с MVC:

1 => Поймать отправку формы с помощью jQuery

$('#id_of_form').submit(function() {
  // do stuff

  // at the end, prevent the normal submit
  return false;
});

2 => Отправьте данные формы вашему контроллеру, например ::

// do stuff
$.post('your_controller.asp', $(this).serialize(), function(data) {
  // do stuff with the returned data  
});

Подробнее о том, как это работает: http://api.jquery.com/jQuery.post/

3 => В вашем контроллере вы видите, что форма отправлена, и вы отправляете данные в модель, где она обрабатывается. Затем Контроллер берет представленный текст с кодом bb-like и форматирует его. После этого вы отображаете / отображаете форматированный текст.

Все, что возвращается после вызова your_controller.asp (в данном случае это должен быть форматированный текст), будет сохранено в переменной data. Затем вы можете использовать эти данные и сообщить jQuery, чтобы добавить их на страницу в определенном элементе (например, div под формой, показывающей, что вы разместили):

// do stuff with the returned data
$('#id_of_result_element').html(data);
...