分部试图调用方式
<!--Html.RenderPartial、Html.Partial只会调用对应的cshtml文件,并不会调用controller里的action--> @{Html.RenderPartial("PartialView", "Html.RenderPartial的调用方式");} @{ ViewDataDictionary vdd = new ViewDataDictionary() { new KeyValuePair<string, object>("aaa", "bbb"), new KeyValuePair<string, object>("ccc", "ddd") }; } @Html.Partial("PartialView", "Html.Partial的调用方式,并且加入ViewData字典的方式", vdd) @Html.Partial("~/Views/Home/PartialView.cshtml", "指定详细路径的调用方式") <!--Html.Action、Html.RenderAction会先执行后台Controller下的Action,再去找对应cshtml文件--> @Html.Action("Render", "Home", new { id = 100 }) @{Html.RenderAction("Render", "Home", new { id = 200 });} <!--对应母版页的RenderSection--> @section MyLayout{ <h1>呵呵呵!</h1> }
PartialView.cshtml
@model string <p>@Model</p> @ViewData["aaa"] <br /> @ViewData["ccc"]
_layout.cshtml
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>@ViewBag.Title - 我的 ASP.NET 应用程序</title> @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") </head> <body> <div class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> @Html.ActionLink("应用程序名称", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" }) </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li>@Html.ActionLink("主页", "Index", "Home")</li> <li>@Html.ActionLink("关于", "About", "Home")</li> <li>@Html.ActionLink("联系方式", "Contact", "Home")</li> </ul> </div> </div> </div> <div class="container body-content"> @RenderBody() <hr /> @RenderSection("MyLayout",required:false) <footer> <p>© @DateTime.Now.Year - 我的 ASP.NET 应用程序</p> </footer> </div> @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false) </body> </html>