如何进行变量操作?

问题描述 投票:2回答:1

在C#中使用MVC编写,我有一个设备向{host}/clock发出HTTP请求。我想要不同的设备写入不同的地方,所以我想进入主机{.../company1/}{.../company2/}。然后我会有一个CompanyController,可以重定向company1company2等的请求,而无需硬编码公司的名称。

所以对{host}/company/company1/clock的请求会写入company1的数据库。据推测,如果我进入{host}/company/notacompany/,我仍然希望看到值"notacompany",所以我可以将其重定向到其他地方。如何在没有专门编写company1动作的情况下将company1作为公司控制器内的地址进行捕获,或者这是错误的方法吗?

c# asp.net .net
1个回答
3
投票

您可以使用属性路由告诉路由引擎如何处理route参数(company1company2等...)。你可以使用switch并处理notacompany中的default

public class CompanyController : Controller {
    [Route("/[controller]/{companyId}")]
    public ActionResult Index(string companyId) {
        switch(companyId) {
            case "company1":
                //Process company1.
            case "company2":
                //Process company2.
            default:
                //Process 'notacompany' here.
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.