Html.RenderAction不适用于已翻译的路线

时间:2012-12-01 00:24:23

标签: asp.net-mvc

我正在使用ASP.NET MVC 4.

我实现了解决方案here,它适用于Html.ActionLink。但是,当我使用Html.Action或Html.RenderAction时,它不起作用。我收到错误:

未找到路径'/ Demarrer'的控制器或未实现IController。

重现的步骤:

  1. 从上面的网站下载示例代码。 LocalizedRouteExample.zip(23.23 kb)
  2. 添加新控制器 SetupController 和相应的视图。
  3. 在主页上添加:
  4.   

    <%= Html.ActionLink("Setup", "Index", "Setup") %>

         

    <% Html.RenderAction("Index", "Setup"); %>

    。  4.在Global.asax第30行添加:

      

    new RouteValueTranslation(cultureFR, "Setup", "Installation")

    public class SetupController : Controller
    {
        public ActionResult Index()
        {
            return PartialView();
        }
    }
    

    查看/设置/ Index.ascx:

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
    <strong>This is SETUP</strong>
    


    5)现在改为法语并跳回主页。

    我知道'因为它找不到控制器。我应该传递给这个RenderAction方法以使其工作?


1 个答案:

答案 0 :(得分:0)

对于RenderAction,此处提供了使用“ViewContext.RequestContext.RouteData.DataTokens”的解决方案:

ASP.NET (MVC) routes internationalization