Asp.net mvc 1.0 Ajax实现的一个例子

实现把产品加入到收藏夹这个功能,其它的添加产品评论阿之类的功能也是这么实现的。
:)
在/product/details/10001
显示产品的详细信息这个页面实现。
要引用相关的js文件/javascript/myjsframe.js
这里要说明一下,那些jquery,property之类台强大了,用不着这么多功能,
所以我同事一牛人精简了一个自用,大家有兴趣可以访问他的blog,在js文件里有。
View:
在head里面要这些代码
<script src="/javascript/myJSFrame.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
function addfavorite(url1,title) {
    var url = "/my/Add2Favorite/";
    var paras = "url=" + url1 + "&title=" + title + "&type=Products";
    $.Ajax.post(url, paras, function(x) {
        if (x.responseText == "") {
            alert("OK");
        } else {
            alert("Error");
        }
    }
    );
}
</script>

<a href='javascript:void(0)' onclick="addfavorite('/Product/Details/<%=product.ProductsID %>',pname.innerText)" class="add-favorites">添加到收藏夹</a>

之上javascript 的addfavorite()函数实现中可以看到,数据会post到"/my/Add2Favorite/"这个控制器下的Add2Favorite这个action.
也就是My controller下的Add2Favorite这个action.
如下:

        [Authorize]
        public void Add2Favorite()
        {
            try
            {
                string title = Request["title"];
                string url = Request["url"];
                string type = Request["type"];

                XuShop.Models.common.favoriteurlInfo fi = new XuShop.Models.common.favoriteurlInfo();
                fi.OrganizationsID = XuShop.Models.web.Util.OrganizationsID;
                fi.UsersID = XuShop.Models.web.helper.MemberInfo.MembersID;
                fi.URL = url;
                fi.Title = title;
                fi.KeyWord = type;
                fi.GUID = System.Guid.NewGuid().ToString();
                new XuShop.Models.bll.favoriteurl().Add(fi);
            }
            catch (System.Exception ex)
            {
                Response.Write(ex.Message);
            }
        }

解读:
[Authorize]是要说明该action是要登录之后才可以访问,如果每有登录会调转到/account/login
参数可以使用传统的Request对象
反之,回复数据可以使用Response对象。

就这样,ajax就实现了。:) 。可惜我还不懂微软那套ajax.net.
posted @ 2009-09-06 21:13  XuShop  阅读(337)  评论(0编辑  收藏  举报