我有一个博客应用,用户可以从管理员插入要批准/拒绝的评论。
以下是管理员可以通过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”字符串。
它运行但我不太喜欢它,我认为有一种更好更清洁的方法可以做到但我不知道,有人可以帮助我吗?
答案 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方法调用控制器并在成功时更新结果。它比这更有效。