溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣利用C# MVC框架做任務管理

發布時間:2024-11-29 14:25:32 來源:億速云 閱讀:127 作者:小樊 欄目:編程語言

要使用C# MVC框架開發任務管理應用程序,你需要遵循以下步驟:

  1. 創建項目:首先,使用Visual Studio創建一個新的C# MVC Web應用程序項目。選擇"MVC 5 應用程序(.NET Framework)"模板。

  2. 設計模型(Model):創建一個名為Task的模型類,用于表示任務的基本屬性,如標題、描述、截止日期等。在Model文件夾中創建一個名為Task.cs的文件,并添加以下代碼:

public class Task
{
    public int Id { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }
    public DateTime DueDate { get; set; }
    public bool IsCompleted { get; set; }
}
  1. 創建控制器(Controller):在Controllers文件夾中創建一個名為TasksController的控制器類。這將負責處理與任務相關的所有請求。添加以下代碼:
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using YourNamespace.Models;

namespace YourNamespace.Controllers
{
    public class TasksController : Controller
    {
        private readonly ITaskRepository _taskRepository;

        public TasksController(ITaskRepository taskRepository)
        {
            _taskRepository = taskRepository;
        }

        // GET: Tasks
        public ActionResult Index()
        {
            var tasks = _taskRepository.GetAllTasks();
            return View(tasks);
        }

        // GET: Tasks/Details/5
        public ActionResult Details(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            var task = _taskRepository.GetTaskById(id.Value);

            if (task == null)
            {
                return HttpNotFound();
            }

            return View(task);
        }

        // GET: Tasks/Create
        public ActionResult Create()
        {
            return View();
        }

        // POST: Tasks/Create
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "Title,Description,DueDate")] Task task)
        {
            if (ModelState.IsValid)
            {
                _taskRepository.AddTask(task);
                _taskRepository.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(task);
        }

        // GET: Tasks/Edit/5
        public ActionResult Edit(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            var task = _taskRepository.GetTaskById(id.Value);

            if (task == null)
            {
                return HttpNotFound();
            }

            return View(task);
        }

        // POST: Tasks/Edit/5
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit([Bind(Include = "Id,Title,Description,DueDate")] Task task)
        {
            if (ModelState.IsValid)
            {
                _taskRepository.UpdateTask(task);
                _taskRepository.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(task);
        }

        // GET: Tasks/Delete/5
        public ActionResult Delete(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            var task = _taskRepository.GetTaskById(id.Value);

            if (task == null)
            {
                return HttpNotFound();
            }

            return View(task);
        }

        // POST: Tasks/Delete/5
        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public ActionResult DeleteConfirmed(int id)
        {
            var task = _taskRepository.GetTaskById(id);
            _taskRepository.DeleteTask(task);
            _taskRepository.SaveChanges();
            return RedirectToAction("Index");
        }
    }
}
  1. 創建存儲庫(Repository):為了簡化數據訪問,創建一個名為ITaskRepository的接口,并在Models文件夾中創建一個名為TaskRepository.cs的文件。添加以下代碼:
using System.Collections.Generic;
using System.Linq;
using YourNamespace.Models;

namespace YourNamespace.Repositories
{
    public interface ITaskRepository
    {
        IEnumerable<Task> GetAllTasks();
        Task GetTaskById(int id);
        void AddTask(Task task);
        void UpdateTask(Task task);
        void DeleteTask(Task task);
        void SaveChanges();
    }
}

接下來,實現ITaskRepository接口。在Models文件夾中創建一個名為TaskRepository.cs的文件,并添加以下代碼:

using System.Collections.Generic;
using System.Linq;
using YourNamespace.Models;

namespace YourNamespace.Repositories
{
    public class TaskRepository : ITaskRepository
    {
        private readonly ApplicationDbContext _context;

        public TaskRepository(ApplicationDbContext context)
        {
            _context = context;
        }

        public IEnumerable<Task> GetAllTasks()
        {
            return _context.Tasks.ToList();
        }

        public Task GetTaskById(int id)
        {
            return _context.Tasks.Find(id);
        }

        public void AddTask(Task task)
        {
            _context.Tasks.Add(task);
        }

        public void UpdateTask(Task task)
        {
            _context.Tasks.Attach(task);
            _context.Entry(task).State = EntityState.Modified;
        }

        public void DeleteTask(Task task)
        {
            _context.Tasks.Remove(task);
        }

        public void SaveChanges()
        {
            _context.SaveChanges();
        }
    }
}
  1. 創建數據庫上下文(DbContext):在Models文件夾中創建一個名為ApplicationDbContext.cs的文件,繼承自IdentityDbContext,并配置連接字符串。添加以下代碼:
using Microsoft.AspNet.Identity.EntityFramework;
using YourNamespace.Models;

namespace YourNamespace.Models
{
    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
            : base("name=DefaultConnection", throwOnMissingConnectionString: false)
        {
        }

        public static ApplicationDbContext Create()
        {
            return new ApplicationDbContext();
        }
    }
}
  1. 配置依賴注入(Dependency Injection):在Startup.cs文件中配置依賴注入,將TaskRepository注入到TasksController中。修改ConfigureServices方法如下:
public void ConfigureServices(IServiceCollection services)
{
    // ...

    services.AddScoped<ITaskRepository, TaskRepository>();

    // ...
}
  1. 創建視圖(View):在Views文件夾中創建一個名為Tasks的文件夾,并在其中創建以下視圖文件:
  • Index.cshtml:用于顯示任務列表。
  • Details.cshtml:用于顯示任務的詳細信息。
  • Create.cshtml:用于創建新任務。
  • Edit.cshtml:用于編輯任務。
  • Delete.cshtml:用于刪除任務。
  1. 配置路由(Route):在App_Start文件夾中的RouteConfig.cs文件中配置路由,將任務相關的請求映射到TasksController。修改RegisterRoutes方法如下:
public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

現在,你已經創建了一個基本的C# MVC任務管理應用程序。你可以根據需要添加更多功能,如用戶身份驗證、任務狀態更改(未完成/已完成)等。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女