我使用mvc转到一个返回局部视图的索引然后在布局的主体中渲染它,然后视图的不同部分(编辑,添加,删除)我使用ajax和angular来渲染它的不同部分。所以我有一个不同部分的索引(编辑,删除,添加),它们呈现相应的组件并更新它们抛出ajax。问题是我只想渲染布局中与局部视图对应的部分,我的意思是渲染部分的renderbody()。但我不希望布局的标题回发以保留所选的选项。
这是一张图片:
这是布局,通常的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>© @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();
}
简而言之: 我需要知道如何使用局部视图,在布局中渲染它,保留所选的选项,而不是回发以更好地查看页面。
答案 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")
不确定这是否是您所需要的,但我希望它有所帮助。