首页 文章

如何使用RedirectToAction重定向到页面中的某个位置?

提问于
浏览
1

我在一个项目中使用MVC4,C#和visual studio ultimate 2013 .

我在提交表单后将用户重定向到索引页面 . 但是,此网页有2个标签,我想将用户重定向到第二个标签,而不是第一个标签 .

我有一个名为 Material 的控制器,带有 Index 动作,用于将用户发送到 Index 视图 .

public ActionResult Index()
{
   return View();
}

此视图由两个部分视图 _Materials_Packages 组成 .

@{
    ViewBag.Title = "Index";
}
<div class="tabbable">
    <ul class="nav nav-tabs">
        <li class="active"><a href="#Materials" data-toggle="tab">Materials</a></li>
        <li><a href="#Packages" data-toggle="tab">Packages</a></li>
    </ul>
    <div class="tab-content">
        <div class="tab-pane active" id="Materials">
            @Html.Action("Materials", "Material")
        </div>
        <div class="tab-pane" id="Packages">
            @Html.Action("Packages", "Package")
        </div>
    </div>
</div>

在应用程序的另一部分执行一系列操作后,我将用户重定向到 /Material 页面,再到第二个选项卡,但我不知道该怎么做!

目前我正在使用此代码,该代码始终重定向到第一个选项卡:

return RedirectToAction("Index", "Material");

我该如何解决我的问题?

3 回答

  • 0

    您不能使用 RedirectToAction 之类的内容,因为它没有任何附加URL片段的功能 . 您可以使用 Redirect 之类的东西,它只需要一个URL字符串,然后使用URL帮助程序为您动态生成操作URL:

    return Redirect(Url.Action("Index", "Material") + "#Package");
    

    换句话说, Url.Action 将为您生成主URL并将其作为字符串返回 . 然后,您可以在最终重定向之前将片段附加到此字符串 .

  • 0

    你会想要使用

    重定向方法

    Redirect("www.sitename.com/material/index#Package");
    

    要么

    string fragment = "Package";
    Redirect("www.sitename.com/material/index#" + fragment);
    

    #Package就是所谓的片段标识符,它将您的浏览器集中在页面的ID为Package的部分 .

  • 7

    您只需编写一个Ajax调用即可传递给控制器,如果是 success ,则将 #tab 追加到url参数 . 例如使用这个:

相关问题