一段时间以来,我一直在玩MVC的不同方面,而且我不知道什么是解决问题的最佳方式。我希望SO社区将帮助我在这里:PASP.NET MVC2中的Ajax注释表单,howto?
我见过一些Ajax.BeginForm在互联网上的例子,它似乎是一个非常漂亮的想法。例如。你有一个下拉选择一个客户 - 选择一个它会在页面上的某个占位符中加载该客户的详细信息。这工作非常好。
但是如果你想在盒子里进行一些验证,该怎么办?
只是假设,想象一个文章页面,用户评论在底部。在评论区域下方有一个ajax-y“添加评论”框。当用户添加评论时,它将出现在评论区域中,在最后的评论下方。
如果我设置Ajax.BeginForm将调用的结果附加到注释区域,它将正常工作。但是,如果发布的数据无效,该怎么办?我不必向评论区域添加“成功”评论,而必须显示用户验证错误。
在这一点上,我决定内部的Ajax.BeginForm区域将在一个部分内,并且表单的submits将返回这个部分。验证工作正常。在每次提交时,我们重新加载表单元素中的内容。但是如何将成功的评论添加到顶部?
要考虑的其他事项:评论表单还有一个“预览”按钮。当用户点击预览时,我应该将渲染的注释加载到预览框中。这可能也在表单区域内。
我想使用Json结果代替。当用户提交表单时,服务器代码将生成一个带有成功值的Json对象,而HTML将部分作为一些属性呈现。像
{ "success": true, "form": "<html form data>", "comment": "successful comment html to inject into the page" }
这样的东西将是一个完美的解决方案,但有一个在MVC没有办法使部分转换为字符串,在控制器内(背景的分离,还记得吗?)。
UPD:似乎没有人知道这个问题的答案......这是否意味着没有办法做到这一点,或者你只是不知道,家伙?
这不是没有人回答。目前还不清楚你的问题是什么。 – 2010-11-01 12:25:01