/ / Perché il mio footer appare due volte: css, ajax, asp.net-mvc, rasoio

Perché il mio footer appare due volte: css, ajax, asp.net-mvc, rasoio

<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>
@Ajax.ActionLink("Imagenes List", "Images", "Home", new { page = 0 }, new AjaxOptions()
{
HttpMethod = "GET", // HttpMethod to use, GET or POST
UpdateTargetId = "divImage", // ID of the HTML element to update
InsertionMode = InsertionMode.Replace // Replace the existing contents
})
</li>
</ul>
</div>

Ho due collegamenti nel mio _Layout, @Html.ActionLink e @Ajax.ActionLink

Un contenitore div per ajax

<div id="divImage" class="container body-content">
@RenderBody()
<hr />
</div>

E un piè di pagina.

<footer class="container body-content">
<p>&copy; @DateTime.Now.Year - My ASP.NET Application</p>
</footer>`

Il mio problema è con @Ajax.ActionLink il piè di pagina appare due volte quando @Html.ActionLink appare solo una volta.

Ho corretto cambiando il ritorno per l'azione "Immagini" su return PartialView() o impostazione Layout = null;

Ma mi chiedo perché solo Ajax abbia bisogno di questa soluzione e la mia soluzione è ok?

La mia ipotesi è forse qualcosa nel css, ma non sono sicuro di cosa cercare.

risposte:

1 per risposta № 1

E 'richiesto solo quando si usa AJAX perché AJAXè l'unica situazione in cui si sta inserendo il contenuto in una vista già renderizzata. Il rendering della prima vista ha ottenuto l'intero layout, quindi la chiamata AJAX inserisce nuovamente il layout.

Nel primo scenario. Viene visualizzata solo la vista principale, quindi solo un layout.


-1 per risposta № 2

Basta racchiuderlo nella sezione del corpo in quel modo (questo è il principale cshtml):

-body id = "miau" - @ Html.Partial ("PartialView1", Model.partialModel) -/corpo-