【问题标题】:How to pass date to WebAPI from HTML5 input type = "date" using Angular?如何使用Angular从HTML5输入类型=“日期”将日期传递给WebAPI?
【发布时间】:2016-09-08 17:47:24
【问题描述】:

我正在尝试使用 HTML 5 Input type = "Date" 控件从 Angular 调用 .NET Web API。

在我的 HTML 页面上,我看到 HTML 控件上的日期格式正确为“dd/mm/yyyy”。但是,当我在角度控制器中检索此值时,我得到的格式为“Sun Sep 11 00:00:00 GMT-0400(Eastern Daylight Time)”。我对如何获取此日期并传递给具有日期参数的 Web API 感到困惑在行动方法。

<!DOCTYPE html>
<html ng-app="myApp">
<head>
    <title>This is to test dates being passed from Angular to WebAPI </title>
    <meta charset="utf-8" />
</head>
<body ng-controller="myController">
    <input type="date" ng-model="HireDate" placeholder="Hire Date" /> 
    <br />
    <input type="button" value="Get Employees" ng-click="getEmployees(HireDate)" /> 
   <!--<div ng-repeat="empSingleRecord in employee">
       empSingleRecord.FirstName + ' ' + empSingleRecord.LastName
   </div>-->

 <!--Get Angular Script Refrence--> 
    <script src="Scripts/angular.min.js"></script>
    <script src="App/AngularDateModule.js"></script>
</body>
</html>

///

var app = angular.module('myApp', []);

//Create Controller 
app.controller("myController" , function($scope){
    // $scope.HireDate 

    $scope.getEmployees = function (varHireDate) {
        alert(varHireDate);
    }

});

【问题讨论】:

    标签: angularjs asp.net-web-api


    【解决方案1】:

    这是打印的完整 javascrit Date 对象。如果你真的要使用dd/MM/yyyy格式,可以使用angular$filter来格式化:

    $filter('date')(varHireDate, 'dd/MM/yyyy')
    

    如果您只是将其发送到 API,则无需这样做。 ASP.NET 应该能够将其原样转换为 DateTime

    【讨论】:

    • 我不明白的一点是 $filter 返回一个字符串。 $filter(字符串)的输出,我传递给 WebAPI 参数(日期时间),它没有抱怨,仍然有效。
    • 另一个后续问题是 - HTML5 Input type="date" 是否适合与 Angular 一起使用?我只是想看看其他人在用什么?
    • WebApi 参数总是字符串。 ASP.Net 自动解析它们。我不能谈论 HTML5 日期控件,因为我还没有将它们与 angular 一起使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    • 2015-11-17
    • 1970-01-01
    • 2013-05-25
    • 2022-12-05
    • 1970-01-01
    相关资源
    最近更新 更多