How can i load Partial view inside the view
这部分观点让我很困惑......
我想在主视图中加载局部视图...
这是简单的例子......
我正在加载Homecontroller Index操作的Index.cshtml作为主页面。
在index.cshtml我正在创建一个链接
1 | @Html.ActionLink("load partial view","Load","Home") |
在HomeController中我添加了一个名为的新Action
1 2 3 4 | public PartialViewResult Load() { return PartialView("_LoadView"); } |
在_LoadView.cshmtl我只是有一个
1 | Welcome !! |
但是,当运行项目时,index.cshtml首先渲染并向我显示链接"加载部分视图"...当我点击它时,它转到新页面instade,将欢迎消息从_LoadView.cshtml呈现到index.cshtml。
有什么不对?
注意:我不想通过AJAX加载页面或者不想使用Ajax.ActionLink
如果要直接在主视图中加载局部视图,可以使用
1 | @Html.Action("Load","Home") |
或者如果您不想通过Load操作,请使用HtmlPartial hepler:
1 | @Html.Partial("_LoadView") |
如果要使用
1 2 3 4 5 6 | @Ajax.ActionLink( "load partial view", "Load", "Home", new AjaxOptions { UpdateTargetId ="result" } ) |
当然,您需要在页面中包含一个显示部分的持有者:
1 |
另外不要忘记包括:
1 | <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"> |
在主视图中,以启用
1 |
我有与莱尼尔完全相同的问题。我在这里和其他十几个地方尝试过修复。最终对我有用的事情就是添加
1 2 | @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/jqueryval") |
我的布局......
对我来说,这是通过NuGet下载AJAX Unobtrusive库之后的工作:
1 | Search and install via NuGet Packages: Microsoft.jQuery.Unobtrusive.Ajax |
在视图中添加对jquery和AJAX Unobtrusive的引用:
1 2 | @Scripts.Render("~/bundles/jquery") <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"> |
接下来我们要渲染Ajax ActionLink和div:
1 2 3 4 5 6 | @Ajax.ActionLink( "Click Here to Load the Partial View", "ActionName", null, new AjaxOptions { UpdateTargetId ="toUpdate" } ) |
如果使用
如果你想加载itmedialty,那么你使用
如果你想在用户交互(即点击链接)上这样做,那么你需要使用AJAX - >
如果要在视图中填充局部视图的内容,可以使用
1 | @Html.Partial("PartialViewName") |
要么
1 | {@Html.RenderPartial("PartialViewName");} |
如果您想要生成服务器请求并处理数据,然后将部分视图返回到您可以使用的数据填充的主视图
1 2 3 4 5 6 7 8 | ... @Html.Action("Load","Home") ... public PartialViewResult Load() { return PartialView("_LoadView"); } |
如果您希望用户单击该链接,然后填充您可以使用的部分视图数据:
1 2 3 4 5 6 7 | @Ajax.ActionLink( "Click Here to Load the Partial View", "ActionName", "ControlerName", null, new AjaxOptions { UpdateTargetId ="toUpdate" } ) |
RenderParital更适合用于性能。
1 | {@Html.RenderPartial("_LoadView");} |
对上面的小推文
1 2 3 4 5 6 7 | @Ajax.ActionLink( "Click Here to Load the Partial View", "ActionName", "ControlerName", null, new AjaxOptions { UpdateTargetId ="toUpdate" } ) |