title: Html.Action or Html.Partial not working with Attribute Routing
body: <p>i have a simple test controller defined as </p>
  
  <pre><code>[Route("~/testAction/testcontroller/{viewhash}")]
  public ActionResult ATest(string viewHash)
          {
              var viewname = commonDataCollection.Instance.WidgetHashList[viewHash];
              return Content($"Success hash by view name is: {viewhash}","text/html");
          }
  </code></pre>
  
  <p>this works if i call this from browser <a href="http://localhost:49359/testAction/testcontroller/FuMmWA1217dgnaT" rel="nofollow noreferrer">http://localhost:49359/testAction/testcontroller/FuMmWA1217dgnaT</a> </p>
  
  <p>the below works if i use actual action/controller name instead of attribute route value but if i try to do the same with <code>Html Helper</code> with routing defined such as :</p>
  
  <pre><code>@Html.Action("testAction", new { viewhash = "FuMmWA1217dgnaT",area="",controller= "testcontroller" });
  </code></pre>
  
  <p>or </p>
  
  <pre><code>@Html.Partial("testAction", new { viewhash = "FuMmWA1217dgnaT",area="",controller= "testcontroller" });
  </code></pre>
  
  <p>or even when i am trying the render functions, i am getting following error:</p>
  
  <blockquote>
    <p>Execution of the child request failed. Please examine the
    InnerException for more information. at
    System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap[TResult](Func<code>1
    func) at
    System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerAsyncWrapper.BeginProcessRequest(HttpContext
    context, AsyncCallback cb, Object extraData) at
    System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler,
    TextWriter writer, Boolean preserveForm, Boolean setPreviousPage,
    VirtualPath path, VirtualPath filePath, String physPath, Exception
    error, String queryStringOverride) at
    System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter
    writer, Boolean preserveForm, Boolean setPreviousPage) at
    System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter
    writer, Boolean preserveForm) at
    System.Web.HttpServerUtilityWrapper.Execute(IHttpHandler handler,
    TextWriter writer, Boolean preserveForm) at
    System.Web.Mvc.Html.ChildActionExtensions.ActionHelper(HtmlHelper
    htmlHelper, String actionName, String controllerName,
    RouteValueDictionary routeValues, TextWriter textWriter) at
    System.Web.Mvc.Html.ChildActionExtensions.Action(HtmlHelper
    htmlHelper, String actionName, String controllerName,
    RouteValueDictionary routeValues) at
    System.Web.Mvc.Html.ChildActionExtensions.Action(HtmlHelper
    htmlHelper, String actionName, Object routeValues) at
    ASP._Page_Views_widgetrenders_contact_cshtml.Execute() in
    D:\Projects\company
    projects\CMSAlpha\CMSAlpha\Views\widgetrenders\contact.cshtml:line 20
    The controller for path '/2/abc' was not found or does not implement
    IController. System.Web.HttpException (0x80004005): The controller for
    path '/2/abc' was not found or does not implement IController. at
    System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext
    requestContext, Type controllerType) at
    System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext
    requestContext, String controllerName) at
    System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase
    httpContext, IController&amp; controller, IControllerFactory&amp; factory) at
    System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase
    httpContext, AsyncCallback callback, Object state) at
    System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext,
    AsyncCallback callback, Object state) at
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext
    context, AsyncCallback cb, Object extraData) at
    System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerAsyncWrapper.&lt;&gt;c__DisplayClass7.&lt;BeginProcessRequest&gt;b__6()
    at
    System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap[TResult](Func</code>1
    func) at
    System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext
    requestContext, Type controllerType) at
    System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext
    requestContext, String controllerName) at
    System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase
    httpContext, IController&amp; controller, IControllerFactory&amp; factory) at
    System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase
    httpContext, AsyncCallback callback, Object state) at
    System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext,
    AsyncCallback callback, Object state) at
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext
    context, AsyncCallback cb, Object extraData) at
    System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerAsyncWrapper.&lt;>c__DisplayClass7.b__6()
    at
    System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap[TResult](Func`1
    func)</p>
  </blockquote>