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

根据不同的控制器方法返回不同的页面。

原文地址:https://www.cnblogs.com/wangzl1163/p/6341114.html