【问题标题】:Basic AJAX example with ASP.NET MVC?带有 ASP.NET MVC 的基本 AJAX 示例?
【发布时间】:2009-04-19 06:33:29
【问题描述】:

我正在制作一个用于教育目的的演示 ASP.NET MVC 应用程序。

我有一张图片/链接将帖子标记为具有攻击性。我想通过 AJAX 从服务器请求标记攻击性并检查以确保用户具有此能力。

如果用户这样做,那么我想在数据库中将帖子标记为冒犯性并返回该标记已通过。如果用户最终无权标记项目,那么我想向客户端返回一条否定消息,以便我可以弹出一个漂亮的 jQuery 框,说明它没有通过。

我正在尝试在没有完整回发/刷新的情况下完成这一切。

有没有人提供使用 MVC 发出的简单 AJAX 请求示例的链接?

【问题讨论】:

    标签: jquery ajax asp.net-mvc


    【解决方案1】:

    使用 jQuery 实际上很容易。假设您的链接是这样的:

    <a href="javascript:flagInappropriate(<%=Model.PostId%>);">Flag as inappropriate</a>
    

    创建一个 javascript 来调用控制器中的操作以根据需要进行检查和标记:

    function flagInappropriate(postId) {
        var url = "<CONTROLLER>/<ACTION>/" + postId;
        $.post(url, function(data) {
            if (data) {
                // callback to show image/flag
            } else {
                // callback to show error/permission
            }
        });
    }
    

    在您的控制器中的操作方法可能如下所示:

    [AcceptVerbs("POST")]
    public bool FlagAsInappropriate(int id) {
        // check permission
        bool allow = CheckPermission();
    
        // if allow then flag post
        if (allow) {
            // flag post
    
            return true;
        } else {
            return false;
        }
    }
    

    【讨论】:

    • 为什么在上面的示例代码中你不只是返回 CheckPermission(); ?
    • 因为如果 CheckPermission 返回 true,您可能需要执行一些额外的逻辑/操作 - 请参阅 // 标志发布区域
    【解决方案2】:

    这里是使用@Ajax 对象的例子。更简单的是@Ajax.ActionLink。

    http://ovisdevelopment.com/davisisms/?p=82&preview=true&preview_id=82&preview_nonce=32c77db2e4

    【讨论】:

      猜你喜欢
      • 2013-09-01
      • 2011-03-24
      • 1970-01-01
      • 2010-10-09
      • 1970-01-01
      • 2017-04-20
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多