我正在尝试从控制器内部读取我在路径中定义的参数。
路线:
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();
}
}
}
感谢任何帮助!
答案 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"];
}