在MVC 3应用程序中生成路径特定视图

时间:2012-10-10 10:41:13

标签: c# asp.net-mvc-3 asp.net-mvc-routing

由于我是MVC 3开发的新手,我需要一些关于我目前正在开发的开发任务的最佳方法的建议。

我目前正在开发支付表格申请以支付各种计划,最终这将包括合理数量的计划,其中大多数计划至少有三种方式可以支付(全额付款,存款和余额 - 有些还包括折扣还有一些只能全额支付。

我需要决定实施基于路线的策略的最佳方法,该策略允许用户输入他们想要支付的程序的特定URL,基本上所有程序都需要输入相同的信息才能输入唯一的差异是每个程序的成本以及程序运行的日期或日期。

我正在尝试决定为每个程序提供多个视图然后为每个单独的程序输入路线会更好(我目前有超过30个程序,包括完整,存款和余额以及几个折扣 - 这可能会增加)或者如果可以在单个视图中使用路由为每个程序生成特定信息,这样我就不必为30多个视图和控制器复制基本相同的代码。

2 个答案:

答案 0 :(得分:0)

如果我理解你要做什么,那么它应该很简单。

routes.MapRoute(
    name: "Programmes",
    url: "{controller}/{action}/{programme}/{payment}",
    defaults: new
    {
        controller = "Programme",
        action = "Index",
        programme = "SomeDefault",
        payment = "full"
    }
);

这应该允许ProgrammeController中的操作方法中所需的所有变体:

public ActionResult Index(string programme, string payment)
{
    // ...
}

答案 1 :(得分:0)

感谢您的回复我前几天把它放到了一个foreach循环中,它在运行中生成了URL,我使用的路线就是:

foreach (var programme in programmes)
            {
                routes.MapRoute("ProgrammeArea" + " " + programme.Code,
                                programme.Url + "/{action}/{id}",
                                new { controller = "PaymentDetails", action = "Index", id = programme.Id }
                    );
            }

programme.Code确保每次运行循环时路由名称都是唯一的,我从数据库中获取特定的URL