2011-03-05 113 views
0

我有一个部分显示一个页面的表单。 当我提交表单时,我只想让控制器执行其操作并返回页面而不呈现任何内容。我只想显示成功或错误的闪光消息,仅此而已。但是控制器默认尝试渲染一个新页面。我该如何避免这种行为?不渲染!

回答

2

要做你想做的事,只能使用带有JavaScript(AJAX)的异步HTTP请求。 因此,您发布窗体字段的值并更新结果的闪存区域。 您可以使用jQuery在Ajax请求帮助:

<Edited> 

如果你没有在你的页面中的闪存区域,你可以创建它把一个div元素在顶部或你的页面(或任何你想要的其他地方)。 然后在按钮的onclick事件,你把这个:

<input type=button onclick="$.post('/controller/action/update', $('#testform').serialize(), function success(data, textStatus, jqXHR){$.('#flash').html(data)})"> 

这个函数形式的数据发送到服务器,并返回时调用回调函数(成功)。然后您只需要使用返回的数据更新Flash内容。

+0

我正在使用jquery,但我不知道如何显示一个flash消息。 – Joe 2011-03-05 13:10:50