1. 程式人生 > >C#關鍵字partial在asp.net mvc中的應用

C#關鍵字partial在asp.net mvc中的應用

一、概念

一個產品級別的類很容易達到成百上千行程式碼。一個類定義在一個*.CS檔案中,這就將導致程式碼檔案非常長。在建立類時,大多數程式碼在確立之後基本上就不再改變了。例如:欄位資料、屬性和建構函式在生產過程中很少變動,而方法卻需要經常改變。這時,你可以將一個類分佈到多個C#檔案中,這樣可以從樣板程式碼中分離出有用的成員。

要實現這種分離就需要用到C#的partial關鍵字。有partial關鍵字修飾的類成為分部類。定義分部類必須遵循兩點:1、所有分部類的型別名稱(即類名)要相同,為同一個類名。2、所有分部類必須定義在同一個名稱空間中。

二、partial在asp.net mvc控制器中的應用

asp.net mvc中可以根據產品業務來建立控制器,每個控制器對應產品的一個業務。如果產品的一個業務又可以分出多個需求,那麼在這個控制器中會產生大量的程式碼或者與各個需求相關的方法。

這時,可以通過定義分部類把不同的需求的程式碼分佈在多個類檔案中,類檔案以不同的需求來進行命名。對於後期維護也是比較方便的。

三、應用例項

1、業務:使用者登入

2、業務的需求:實現企業和個人兩種使用者登入

3、控制器:LoginController

4、方法:EnterpriseLogin(),PersonalLogin()

5、解決方法:建立兩個C#檔案來分別實現這兩個方法,分別定義兩個分部類。

四、實現程式碼

設計如下圖

1、EnterpriseLogin

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcMovie.Controllers
{
    public partial class LoginController:Controller
    {
        //企業使用者登入
        public ActionResult EnterpriseLogin()
        {
            return View();
        }
    }
}

2、PersonalLogin
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcMovie.Controllers
{
    public partial class LoginController : Controller
    {
        //個人使用者登入
        public ActionResult PersonalLogin()
        {
            return View();
        }
    }
}

3、訪問

使用者訪問登入頁面時url和不採用分部類實現的控制器是一樣的。

企業使用者登入頁

http://localhost:5125/Login/EnterpriseLogin


個人使用者登入頁

http://localhost:5125/Login/PersonalLogin

根據不同的控制器方法返回不同的頁面。