📜  寻找holydays asp.net - C# (1)

📅  最后修改于: 2023-12-03 14:53:40.887000             🧑  作者: Mango

寻找 Holydays 的 ASP.NET - C#

如果你正在寻找一个简单的 ASP.NET 应用程序,该应用程序可以列出一年中所有的假期,那么你来对地方了!在本文中,我们将创建一个基于 ASP.NET 和 C# 的简单 Web 应用程序,它可以通过选择年份和国家来列出假期。

目标

我们的目标是创建一个简单的 Web 应用程序,通过选择年份和国家来列出当年的假期。

准备工作

在开始之前,请确保你拥有以下工具:

  • Visual Studio 2017 或更高版本
  • .NET Framework 4.6.1 或更高版本
步骤
步骤 1:创建 ASP.NET Web 应用程序

首先,打开 Visual Studio 并创建一个新的 ASP.NET Web 应用程序。选择 ASP.NET Web 应用程序模板,如下所示:

Visual Studio 创建 ASP.NET Web 应用程序

为项目命名,并选择 Web 应用程序模板。然后,点击“确定”按钮。

步骤 2:添加 NuGet 包

我们需要安装一些 NuGet 包来处理日期和假期。使用 NuGet 包管理器,在项目中添加以下包:

  • Nager.Date
  • Nager.PublicHolidays
步骤 3:创建视图模型

我们需要一个视图模型来存储假期信息。在 Models 文件夹下创建一个名为 HolidaysViewModel.cs 的类,并添加以下代码:

using System.Collections.Generic;
using Nager.Date;

namespace Holydays.Models
{
    public class HolidaysViewModel
    {
        public int Year { get; set; }
        public string CountryCode { get; set; }
        public List<PublicHoliday> Holidays { get; set; }
    }
}
步骤 4:创建控制器

我们需要一个控制器来呈现视图。在 Controllers 文件夹下创建一个名为 HolidaysController.cs 的类,并添加以下代码:

using System.Web.Mvc;
using Holydays.Models;
using Nager.Date;

namespace Holydays.Controllers
{
    public class HolidaysController : Controller
    {
        // GET: Holidays
        public ActionResult Index()
        {
            var model = new HolidaysViewModel
            {
                Year = DateTime.Today.Year,
                CountryCode = "US",
                Holidays = DateSystem.GetPublicHoliday(DateTime.Today.Year, "US")
            };
            return View(model);
        }

        [HttpPost]
        public ActionResult Index(HolidaysViewModel model)
        {
            if (ModelState.IsValid)
            {
                model.Holidays = DateSystem.GetPublicHoliday(model.Year, model.CountryCode);
            }
            return View(model);
        }
    }
}
步骤 5:创建视图

我们需要一个视图来呈现假期。在 Views 文件夹下创建一个名为 Index.cshtml 的视图文件,并添加以下代码:

@model Holydays.Models.HolidaysViewModel

@{
    ViewBag.Title = "Public Holidays";
}

<h2>@ViewBag.Title</h2>

@using (Html.BeginForm())
{
    <p>
        @Html.LabelFor(model => model.Year)
        @Html.TextBoxFor(model => model.Year, new { placeholder = "Year", required = "required" })
    </p>
    <p>
        @Html.LabelFor(model => model.CountryCode)
        @Html.TextBoxFor(model => model.CountryCode, new { placeholder = "Country code", required = "required" })
    </p>
    <p>
        <button type="submit">Search</button>
    </p>

    <table>
        <tr>
            <th>Date</th>
            <th>Name</th>
            <th>Type</th>
        </tr>
        @foreach (var holiday in Model.Holidays)
        {
            <tr>
                <td>@holiday.Date.ToShortDateString()</td>
                <td>@holiday.LocalName</td>
                <td>@holiday.Type.ToString()</td>
            </tr>
        }
    </table>
}
步骤 6:运行

现在我们可以运行我们的应用程序并看到结果。启动应用程序,选择你所在的国家和年份,点击“Search”按钮,就会列出假期信息了。

应用程序运行

结论

使用 ASP.NET 和 C# 构建一个简单的假日列表 Web 应用程序是非常容易的。本文介绍了一种方法来实现这个功能。希望这篇文章对初学者有所帮助。