要使用C# MVC框架開發任務管理應用程序,你需要遵循以下步驟:
創建項目:首先,使用Visual Studio創建一個新的C# MVC Web應用程序項目。選擇"MVC 5 應用程序(.NET Framework)"模板。
設計模型(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; }
}
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");
}
}
}
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();
}
}
}
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();
}
}
}
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddScoped<ITaskRepository, TaskRepository>();
// ...
}
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任務管理應用程序。你可以根據需要添加更多功能,如用戶身份驗證、任務狀態更改(未完成/已完成)等。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。