I have a problem when a controller action is called at least twice. I have a view that has a different view as its layout page, and the view is called multiple times. If I delete the specification for the layout, the action will be executed once in a row. I looked at StackOverflow and other sites, but could not find a problem that had the same characteristics as mine, so I am posting a new question.
_ViewStart.cshtml: @{ Layout = "~/Views/Shared/_ProfileLayout.cshtml"; } Index.cshtml inside my Profile folder: @{ ViewBag.Title = "Index"; } Index Controller Action: public ActionResult Index() {
This seems like a simple problem, and I will definitely miss something obvious. I posted a sample project on this site: https://skydrive.live.com/#cid=F2DAB940147490B0&id=F2DAB940147490B0%21140
Any ideas what's wrong?
thanks
Update: here is the view: @ {ViewBag.title = "TestMVCProject"; Layout = null; }
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>TestMVCProject</title> <link rel="Stylesheet" type="text/css" href="../../Content/ActiveSite.css" /> <link href="../../Content/themes/TestMVCProject/jquery-ui-1.9.1.custom.min.css" rel="stylesheet" type="text/css" /> <script src="../../Scripts/jquery-1.8.2.js" type="text/javascript"></script> <script src="../../Scripts/jquery-ui-1.9.1.custom.js" type="text/javascript"></script> </head> <body> <div class="container"> <div class="header"> <div id="loginimagecontainer"> @using (Html.BeginForm("LoginActions", "Account", FormMethod.Post, new { @id = "LoginActionsForm" })) { @Html.AntiForgeryToken() <a href="#"><img src="/images/icons/message-icon.png" width="60" height="60" alt="Messages" title="Messages"/></a> <a href="/Account/LogOff"><img src="/images/icons/log-out-icon.png" width="60" height="60" alt="Log off" title="Log off"/></a> } </div> <div class="logotext"><img alt="TestMVCProject Logo" src="#" width="350" height="150" id="TestMVCProjectLogo" /></div> </div> <div class="content profile"> <div id="leftPane"> <img src="#" alt="Placeholder" width="165" height="200" id="ProfilePhoto" title="Profile Photo" /> <div id="Username"></div> <div id="NavLinks"> <div class="ProfileNavigation" onclick="Navigate('/Profile/Update')"><span>Profile</span><img src="/images/icons/edit-icon.png" width="30" height="30" alt="Profile" /></div> <div class="ProfileNavigation"><span>Search</span><img src="/images/icons/search-icon.png" width="30" height="30" alt="Search" /></div> <div class="ProfileNavigation" onclick="Navigate('/Photo')"><span>Photos</span><img src="/images/icons/camera-icon.png" width="30" height="30" alt="Photos"/></div> </div> </div> <div id="adcontainer"> <h4>Ads go here</h4> <p>content goes here</p> </div> <div id="centerPane"> @RenderBody() </div> </div> @RenderPage("~/Views/Shared/_Footer.cshtml") <div id="redirectiondialog" class="dialog"> <br /> Hey, wait up... we're redirecting you over to the login page <br /> </div> <script type="text/javascript"> function Navigate(url) { window.location = url; return false; } </script> </div> </body> </html>
and here is the footer:
<div class="footer"> <div class="fltrt">Copyright 2012 TestMVCProject Inc </div> <p><a href="/Profile/Test">About</a> | <a href="#">Contact</a> | <a href="#">FAQ</a> | <a href="#">Advertise</a> | <a href="#">Support</a> | <a href="#">Feedback</a> | <a href="#">Login</a> | <a href="#">Register</a> | <a href="#">Privacy</a> | <a href="#">Terms</a></p> </div>
Update: @Tieson T: Thanks, I changed this as Html.Partial instead of RenderPage. However, the problem still persists as the action method is still called twice ... (Editing the description, as I do not have privileges to add comments)
user1717575
source share