ASP.NET 5中的RouteData.GetRequiredString的等效项

时间:2015-05-19 23:32:03

标签: asp.net asp.net-mvc-routing asp.net-core

我有几个用于创建导航栏按钮的HtmlHelper扩展方法 - 一个用于上下文相关帮助链接。在我的扩展方法中,我需要知道当前控制器的名称和操作,例如:

var currentAction = htmlHelper.ViewContext.RouteData.GetRequiredString("action");
var currentController = htmlHelper.ViewContext.RouteData.GetRequiredString("controller");

由于在RouteData上没有GetRequiredString()方法,我可以在ASP.NET 5中使用什么来获取此信息?

1 个答案:

答案 0 :(得分:7)

您可以自己创建扩展程序。

namespace Microsoft.AspNet.Mvc
{
    public static class HelperExtensions
    {
        public static string GetRequiredString(this RouteData routeData, string keyName)
        {
            object value;
            if(!routeData.Values.TryGetValue(keyName, out value))
            {
                throw new InvalidOperationException($"Could not find key with name '{keyName}'");
            }

            return value?.ToString();
        }
    }
}