ASP.Net MVC:如何进行提取和自动数据映射

ASP.Net MVC : How to do extract and automatic data mapping

假设我有 link 喜欢 www.mysite.com/Certificate/data/C001-P2003

我的控制器名称是证书和操作名称数据

public class CertificateController : Controller
{
    public ActionResult Data(string certid,string studid)
    {
        return View();
    }
}

我想知道我需要开发什么,它将提取 id 并将其分成由连字符分隔的两部分,并将两个数据映射到数据操作。

C001 将映射到 certid,P2003 将映射到 studid。所以我需要概念如何去做?

我需要开发任何动作过滤器吗?

我需要编写任何自定义值提供程序吗?

我需要编写任何自定义模型活页夹吗?

我不想破坏动作中的数据,而是想在动作之外进行操作。所以建议我一些最好的主意。谢谢

在您的 RouteConfig 中创建一个约定来映射您想要的路线。

routes.MapRoute(
    name: "CertificateData",
    url: "Certificate/data/{certid}-{studid}",
    defaults: new { controller = "Certificate", action = "Data"}
);

或者启用属性路由并使用模板操作来匹配所需的url

// GET Certificate/data/C001-P2003
[Route("Certificate/data/{certid}-{studid}")]
public ActionResult Data(string certid,string studid) {...}