服务器端的自定义渲染逻辑+ MVC + Ajax

时间:2010-05-18 19:35:32

标签: asp.net ajax asp.net-mvc rendering server-side

我有一些自定义标记的渲染逻辑(a'la bbcode,但不是 bbcode)。因此,当我从DB获取内容时,我会调用MyRender.ToHTML(model.text)......

现在我今天做的是我只有一个下面的表格,我做了一个帖子并添加项目并返回相同的视图。我的问题是 - 如何用ajax做到这一点?我应该创建一个控件并返回HTML a'la winforms吗?那性感吗?你怎么做那样的?或者我应该放弃它?也许用javascript复制渲染逻辑?

1 个答案:

答案 0 :(得分:1)

使用jQuery是实现此目的的最简单方法。与MVC一起使用的方式:

1 =>使用jQuery抓取表单提交

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

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

2 =>将表单数据发送到Controller,例如:

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

有关其工作原理的更多信息:http://api.jquery.com/jQuery.post/

3 =>在您的控制器中,您会看到表单已提交,您将数据发送到处理它的模型。然后,Controller使用类似bb的代码获取提交的文本并对其进行格式化。之后,您回显/显示格式化文本。

在调用your_controller.asp之后返回的所有内容(在这种情况下应该是格式化的文本)将存储在变量data中。然后,您可以使用该数据并告诉jQuery将其添加到特定元素中的页面(例如显示您发布内容的表单下方的div):

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