ASPNET MVC中的Ajax:它运行但我认为有更好的方法

时间:2011-08-17 20:40:41

标签: asp.net-mvc

我有一个博客应用,用户可以从管理员插入要批准/拒绝的评论。

以下是管理员可以通过Ajax提供/拒绝批准的View代码:

<div id=news_comment_state_@(Model.Id)>@(Model.FlApproved?"Approved":"Denied")</div>
@Ajax.ActionLink("Approve", "ApproveDenyComment", new { IdComment = Model.Id, ApproveDeny=true }, new AjaxOptions { UpdateTargetId = "news_comment_state_"+@Model.Id})
<br />
@Ajax.ActionLink("Deny", "ApproveDenyComment", new { IdComment = Model.Id, ApproveDeny=false }, new AjaxOptions { UpdateTargetId = "news_comment_state_"+@Model.Id})

在Controller中,ApproveDenyComment为2个操作返回“Approve”/“Denied”字符串。

它运行但我不太喜欢它,我认为有一种更好更清洁的方法可以做到但我不知道,有人可以帮助我吗?

4 个答案:

答案 0 :(得分:4)

为什么不在生成的输出上返回JSON对象,如@ stack72所述,返回bool以识别是否为true / false

查看此处的示例

MVC JSON actions returning bool

并且在这篇文章中它说JSON对象是一个键值对,所以将它用于你的动作,如&lt; 0,deny&gt;和&lt; 1,批准&gt;。

答案 1 :(得分:3)

你有1个方法可以返回一个bool值 - 然后可以使用这个bool值在视图上设置正确的样式

你不需要返回魔术字符串

答案 2 :(得分:3)

克里斯,

我很想通过$ ajax返回关于该用户的部分视图并重新填充注释div。保持一致性并保存容易出错的服务器/客户端逻辑断开(即如果错误状态标志将来因任何原因而改变,那么你就有麻烦)。

在一致性方面确实没有性能问题和许多好处。

答案 3 :(得分:1)

使用$ .ajax方法调用控制器并在成功时更新结果。它比这更有效。