保持菜单选择抛出视图

时间:2015-04-18 21:34:11

标签: c# .net asp.net-mvc angularjs

我使用mvc转到一个返回局部视图的索引然后在布局的主体中渲染它,然后视图的不同部分(编辑,添加,删除)我使用ajax和angular来渲染它的不同部分。所以我有一个不同部分的索引(编辑,删除,添加),它们呈现相应的组件并更新它们抛出ajax。问题是我只想渲染布局中与局部视图对应的部分,我的意思是渲染部分的renderbody()。但我不希望布局的标题回发以保留所选的选项。

这是一张图片:

enter image description here

这是布局,通常的mvc布局:

<!DOCTYPE html>
<html lang="es">
<head>
</head>
<body>
    <header>
        <div class="content-wrapper">
            <div class="float-left">
                <p class="site-title">
                 @Html.ActionLink("su logotipo aquí", "Index", "Home")</p>
            </div>
        </div>

        <select>
            <option>Option 1</option>
            <option>Option 2</option>
        </select>
    </header>
    <div id="body">
        @RenderSection("featured", required: false)
        <section class="content-wrapper main-content clear-fix">
           @RenderBody()
        </section>
    </div>
    <footer>
        <div class="content-wrapper">
            <div class="float-left">
                <p>&copy; @DateTime.Now.Year - Mi aplicación ASP.NET MVC</p>
            </div>
        </div>
    </footer>

    @Scripts.Render("~/bundles/jquery")
    @RenderSection("scripts", required: false)
</body>

我的观点:

@{
 Layout = "~/Views/Shared/_Layout.cshtml";
 }

 <h2>holaaaaaaaaaaaaaaaaaa</h2>

我的控制器:

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

简而言之: 我需要知道如何使用局部视图,在布局中渲染它,保留所选的选项,而不是回发以更好地查看页面。

2 个答案:

答案 0 :(得分:0)

如果找不到问题的良好解决方案,请考虑实施引导标签http://getbootstrap.com/javascript/#tabs
我有一个类似的问题,没有找到解决方案,我已经从选择框切换到标签。 基本上你玩标签和ng-includes如下:

 <ul class="nav nav-tabs">
    <li class="active"><a href="" data-toggle="tab">TabName1 
    <ng-include  src="'myFirstPartialTemplate.html'">
</a></li>
    <li><a href="" data-toggle="tab">TabName2
<ng-include  src="'mySecondPartialTemplate.html'">
</a></li>
</ul>

答案 1 :(得分:0)

如果您的视图是局部视图,则它不应设置属性“布局”。

我会做以下事情:

使索引页面返回视图:

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

创建另一个操作以返回您的部分:

public ActionResult MyPartial()
{
    return PartialView();
}

在您的索引页面中,如果您愿意,可以在身体中渲染您的部分内容。

@{
     Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>holaaaaaaaaaaaaaaaaaa</h2>
@Html.Partial("MyPartial")

不确定这是否是您所需要的,但我希望它有所帮助。