Rendering Partial View in code MVC Razor
我正在使用MVC 3 Razor来制作一个简单的CMS用于实践,我的想法是创建一些局部视图。
我想做一个数据库查找,并看到3个部分视图需要呈现到页面。
我该怎么做?在webforms中,您调用loadcontrol(controlurl),但在这里我看不到等效的。
这会是客户方面的事情吗?
编辑-我更想从模型中获取视图名称,然后渲染该视图,而不是事先知道视图的名称。所以一个页面可能有一个名为foo的视图或者一个名为bar的视图。模型在运行时会告诉控制器要呈现哪个视图。
有两种方法可用于呈现"控件"。
1 2 | @Html.Partial("ViewName") @{ Html.RenderPartial("ViewName"); } |
也可以渲染其他操作。
1 2 | @Html.Action("ActionName","Controller", new { Values ="yourvalues" }) @{ Html.RenderAction("ActionName","Controller", new { Values ="yourvalues" }); } |
注意,每个字符串中的第二个被
另外,考虑
另一种方式
1 | @RenderPage("~/Views/Shared/LeftMenu.cshtml") |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | Html.RenderPartial("partialview name", Model.class, new ViewDataDictionary { TemplateInfo = new TemplateInfo { HtmlFieldPrefix ="classname" } }); This code can be used to render the partial view in apge. HTMLfiledprefix is defined to keep the data available in the model You can use tis code to load a partial view on a button event using ajax function partialview() { var url = '@Url.Action("action","controller")'; var data = $('#frm').serialize(); (to serialize the data in the model before posting to the action) var finaldata = data; $.ajax({ type:"post", url: url, data: finaldata, async: false, contentType:"application/json; charset=utf-8", error: function (xhr) { errorRedirecttoErrorController(xhr.error); }, success: function (data) { $("#DIVID").html(data); (div to which the partial view to be loaded) } }); } |