asp.net mvc:在控制器内部读取路由参数

时间:2010-08-03 19:34:25

标签: c# asp.net-mvc

我正在尝试从控制器内部读取我在路径中定义的参数。

路线:

routes.MapRoute(
"BusinessVoice", // Route name
"business/{controller}/{action}/{id}", // URL with parameters
new { controller = "Voice", action = "Index",
id = UrlParameter.Optional, locale = "business" } // Parameter defaults
);

从控制器内部我希望能够读取路径参数 locale ,但不知道在哪里寻找它。

控制器:

namespace www.WebUI.Controllers
{
    public class VoiceController : Controller
    {
        public VoiceController()
        {
            ... want to read the locale param here
        }


        public ViewResult Index(string locale)
        {
            return View();
        }

    }
}

感谢任何帮助!

2 个答案:

答案 0 :(得分:3)

戴夫,

这是来自我的基础控制器,但你也应该能够从顶级控制器做同样的事情:

    protected override void Initialize(System.Web.Routing.RequestContext requestContext)
    {
        var locale = requestContext.RouteData.Values["locale"].ToString() ?? System.Globalization.CultureInfo.CurrentUICulture.TwoLetterISOLanguageName;
        base.Initialize(requestContext);
    }
祝你好运

吉姆

答案 1 :(得分:1)

    public VoiceController()
    {
        var locale = this.RouteData.Values["locale"];
    }