angularJS表单数据到ActionResult - ASP .NET MVC

时间:2015-07-10 06:06:39

标签: javascript html asp.net-mvc angularjs

我想在actionresult中收到一个formdata作为参数,我不想转换为FormData(),并在行动中使用Request.Form结果,我无法直接接收数据,没有FormData(),这里是我迄今为止尝试过的......

<form ng-show="divPatient" name="PatientForm" ng-submit="AddUpdatePatient()">
            <table>
                <tr>
                    <td>
                        <input class="form-control" type="text" readonly placeholder="Key (Automatic)" ng-model="model.PatientID" />
                    </td>
                    <td>
                        <input name="FirstName" class="form-control" type="text" placeholder="FirstName" ng-model="model.FirstName" ng-minlength="3" required />
                    </td>
                    <td>
                        <input name="LastName" class="form-control" type="text" placeholder="LastName" ng-model="model.LastName" ng-minlength="3" required />
                    </td>
                    <td>
                        <input class="form-control" type="text" placeholder="Disease" ng-model="Disease" name="model.Disease" ng-minlength="3" required />
                    </td>
                    <td>
                        <input class="form-control" type="number" placeholder="Phone No." ng-model="model.PhoneNo" name="PhoneNo" ng-pattern="/^[789]\d{9}$/" required />
                    </td>
                    <td>
                        <input type="file" onchange="angular.element(this).scope().selectFileforUpload(this.files)" ng-model="model.PhotoURL" value="" class="form-control profilePic" required/>
                    </td>
                    <td colspan="2" class="saveCancel">
                        <input type="submit" value="save" class="btn btn-success" ng-disabled="PatientForm.PhoneNo.$dirty && PatientForm.PhoneNo.$invalid || PatientForm.LastName.$dirty && PatientForm.LastName.$invalid || PatientForm.FirstName.$dirty && PatientForm.FirstName.$invalid || PatientForm.Disease.$dirty && PatientForm.Disease.$invalid" />
                        <input type="button" value="cancel" class="btn btn-primary" ng-click="CancelForm()" />
                    </td>
                </tr>
                <tr>
                    <td></td>
                    <td><span class="eror-text" ng-show="PatientForm.FirstName.$error.minlength">min 3 letters</span></td>
                    <td><span class="eror-text" ng-show="PatientForm.LastName.$error.minlength">min 3 letters</span></td>
                    <td><span class="eror-text" ng-show="PatientForm.Disease.$error.minlength">min 3 letters</span></td>
                    <td><span class="eror-text" ng-show="PatientForm.PhoneNo.$error.pattern">Invalid phone no</span></td>
                </tr>
            </table>
        </form>

我的控制器在angularJS

app.controller("StudentCtrl", function ($scope, angularService) {
$scope.model = {};
$scope.AddUpdatePatient = function () {
    var getData = angularService.AddPatient($scope.model);
    getData.then(function (msg) {
            alert(msg.data);
        }, function () {
            alert('Error in adding record');
        });
    }
}

我在angularJS的服务

app.service("angularService", function ($http) {

    // Add Employee
    this.AddPatient = function (patientData) {
        var response = $http({
            withCredentials: true,
            headers: { 'Content-Type': undefined },
            transformRequest: angular.identity,
            method: "post",
            url: "AddPatient",
            data: patientData,
            dataType: "json"
        });
        return response;
    }
}

我的行动结果

public string AddPatient(Patient patientData) {
    //but patientdata fields are all null
}

我的MVC模型

using ...

namespace WebApplication3.Models
{
    public class Patient
    {
        public int PatientID { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public long PhoneNo { get; set; }
        public string Disease { get; set; }
        public string PhotoURL { get; set; }
    }
}

我想知道为什么PatientData in action Result为null ??

1 个答案:

答案 0 :(得分:2)

试试这个

  $http({ method: 'POST', url: '/ControllerName/AddPatient', data: patientData }).
                          success(function (data, status, headers, config) {

                          }).
                          error(function (data, status, headers, config) {
                              alert(status);
                          });