【问题标题】:MVC and JQuery UI Tabs - How do I anchor to tabs from various actions?MVC 和 JQuery UI 选项卡 - 如何从各种操作中锚定到选项卡?
【发布时间】:2011-03-24 07:26:02
【问题描述】:

我有课程的详细信息视图。在这个观点上,我有很多信息,所以我把它分解成很好的 JQuery UI 选项卡部分,一切都很好......除了......

一些选项卡上有表格。例如,上传课程资料、添加任务、编辑花名册等......在我提交任何表单后,我想在我的控制器上执行操作,然后再次重定向到详细信息视图,只是这次我想成为锚定到我提交之前所在的选项卡上。根据 Tabs 文档,它就像在 URL 的末尾添加 #tabs-4 或 #tabs-n 一样简单,但我不知道如何告诉我的控制器如何做到这一点......

所以如果我的表单的控制器操作之一是(简化的)

public ActionResult CreateTask(Task task)
{
    db.Add(task);
    db.Save();
    //I want to go to /details/id + #tabs-4.  How?
    return RedirectToAction("Details", new { id = task.CourseID });
}

然后是细节(简化)

public ActionResult Details(int id)
    {
        Course course = db.GetCourse(id);

        // How do I tell the view to open #tabs-4 or 3 or 2??
        return View(course);
    }

此外,我希望有其他方法可以重定向到相同的详细信息视图,而是给它一个#tabs-3、#tabs-2 等,所以我假设我必须在第一次设置它方法,并将其传递给 details 操作。

【问题讨论】:

    标签: asp.net-mvc jquery-ui controller anchor jquery-ui-tabs


    【解决方案1】:
    var url = Url.RouteUrl(new { action = "Details", id = task.CourseID });
    return Redirect(url + "#tabs-4");
    

    【讨论】:

      【解决方案2】:

      您可以使用UrlHelper.GenerateUrl 方法,将您的锚点传递为fragment

      我会在 UrlHelper 中添加一个扩展方法来包装对 GenerateUrl 的调用,因为它需要 10 个参数,您不需要在所有情况下手动提供所有参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多