在区域中渲染Partial时,ActionLink处于Partial状态



我使用分部来呈现区域性选择器控件。该控件存储在~/Views/Shared/control.cshtml下。该控件中有三个用于三种不同语言的操作链接。

@Html.ActionLink("English", "ChangeCulture", "Home",  new { lang = "en", returnUrl = this.Request.RawUrl }, null)

当应用程序在浏览器中启动时,我可以在默认页面上使用此控件,但如果我在某个区域使用该控件,它会访问错误的控制器。是否可以告诉控件中的actionlink使用"默认"HomeController?

谢谢你事先的帮助,如果需要更多细节,请告诉我。

谨致问候,直率的

编辑:

这是布局页面中区域性选择器控件被呈现的部分:

    <div id="login_details">
        <div class="username">@ViewRes.SharedStrings.User: @User.Identity.Name</div>
        @ViewRes.SharedStrings.ChangePassword
        @*@Html.Partial("CultureChooserUserControl")*@
        @Html.Partial("~/Views/Shared/CultureChooserUserControl.cshtml")
    </div>

我知道第三个参数指向控制器,问题是该区域也有一个HomeController。我可以告诉ActionLink要使用哪个HomeController吗?

重命名其中一个HomeControllers

是否需要在路由参数中指定Area?

@Html.ActionLink("English", "ChangeCulture", "Home",  
   new {Area = string.Empty, lang = "en", returnUrl = this.Request.RawUrl }, null)

我在尝试从某个区域的控制器显示菜单时遇到了类似的问题。

我的菜单是MenuController的部分视图。

在我的_Layout.chtml中,我现在呈现的菜单如下

@Html.Action("Index", "Menu",new{Area = string.Empty})

我的MenuController执行此操作。。。

    // GET: /Menu/
    public ActionResult Index()
    {
        var vm = new MenuViewModel();
        vm.IsLoggedIn = CurrentUser != null;
        ...
        return PartialView(vm);
    }

相关内容

  • 没有找到相关文章

最新更新