AngularJs Post 提交 改造

C#后台可通过Request["xxxx"].ToString()进行获取相对应的Form表单参数
Html 代码

<!DOCTYPE html>
<html ng-app="formApp">
	<head>
		<meta charset="utf-8">
		<title>ngPost提交测试</title>
		<script type="text/javascript" src="js/lib/angular.min.js" ></script>
	</head>
	<body >
			<form name="form1" ng-controller="formController" method="post">
		        类型名:<input type="text" name="act" ng-model="formData.act" /><br />
		        职位名:<input type="text" name="name" ng-model="formData.name"/><br />
		        <button ng-click="processForm()" ng-disabled="!form1.$valid">提交</button>
		    </form>
	</body>
</html>

AngularJs 控制器改造

        var app = angular.module("formApp", [], function ($httpProvider) {
            $httpProvider.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded;charset=utf-8";
            $httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
            var param = function (obj) {
                var query = "", name, value, fullSubName, subName, subValue, innerObj, i;
                for (name in obj) {
                    value = obj[name];
                    if (value instanceof Array) {
                        for (i = 0; i < value.length; ++i) {
                            subValue = value[i];
                            fullSubName = name + "[" + i + "]";
                            innerObj = {};
                            innerObj[fullSubName] = subValue;
                            query += param(innerObj) + "&";
                        }
                    } else if (value instanceof Object) {
                        for (subName in value) {
                            subValue = value[subName];
                            fullSubName = name + "[" + subName + "]";
                            innerObj = {};
                            innerObj[fullSubName] = subValue;
                            query += param(innerObj) + "&";
                        }
                    } else if (value !== undefined && value !== null) {
                        query += encodeURIComponent(name) + "=" + encodeURIComponent(value) + "&";
                    }
                }
                return query.length ? query.substr(0, query.length - 1) : query;
            };
            $httpProvider.defaults.transformRequest = [function (data) {
                return angular.isObject(data) && String(data) !== "[object File]" ? param(data) : data;
            }];
        });

调用方法:

        app.controller("formController", function ($scope, $http) {
            $scope.formData = {};
            $scope.processForm = function () {
                console.log("测试一下"+$scope.formData);
                $http.post("http://localhost:9901/Service/JobInterface.ashx",$scope.formData).success(function(data){
                    console.log(data);
                }).error(function(data){
                    console.log(data);
                    console.log("失败");
                });
            }
        });

C#后台编写,使用一般处理程序进行编写接口

        #region 全局变量
        bool dev = true;
        #endregion
        #region 处理HTTP请求
        public void ProcessRequest(HttpContext context)
        {
            context.Response.Cache.SetNoStore();//禁止自动缓存
            context.Response.Clear();
            context.Response.ContentType = "application/json";
            if (dev)
            {
                context.Response.Headers.Add("Access-Control-Allow-Origin", "*");
                context.Response.Headers.Add("Access-Control-Allow-Headers", "X-Requested-With");
            }
            string action = "";
            string temp = "";
            try
            {
                action = context.Request["act"].ToString();
                //action = context.Request.Form["act"].ToString();
                temp = GetActionResult(action);
            }
            catch (Exception e)
            {
                temp = e.ToString();
            }
            //输出数据
            context.Response.Write(temp);
        }
        #endregion
        #region 返回操作结果
        /// <summary>
        /// 返回操作结果
        /// </summary>
        /// <param name="action">操作</param>
        /// <returns></returns>
        private static string GetActionResult(string action)
        {
            string result = "无数据";
            switch (action)
            {
                case "GetJobByPage":
                    result = GetJobInfoByPage();
                    break;
                case "AddJob":
                    result = AddJob();
                    break;
            }
            return result;
        }
        #endregion

        #region 业务逻辑
        #region 添加
        /// <summary>
        /// 添加职位
        /// </summary>
        /// <returns></returns>
        private static string AddJob()
        {
            Job model = new Job();
            model.ID = 0;
            model.Name = HttpContext.Current.Request["name"];
            //model.Name = HttpContext.Current.Request.Form["name"].ToString();
            return JobController.AddJob(model);
        }
        #endregion
posted @ 2015-05-05 15:39  简玄冰  阅读(213)  评论(2编辑  收藏  举报