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

路线:

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


从控制器内部,我希望能够读取route参数语言环境,但不知道在哪里寻找它。

控制器:

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


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

    }
}


任何帮助表示赞赏!

最佳答案

戴夫

这是我的basecontroller提供的,但您也应该能够从顶层的控制器做完全相同的事情:

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


祝好运

吉姆

关于c# - asp.net mvc:读取 Controller 内部的路由参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3400126/

10-13 07:51