asp.net-mvc – 如何在一个视图中呈现强类型的局部视图?
我是这个asp net mvc的新手,但在网络表格方面有很强的背景.
我想实现一个具有左侧资产菜单的页面,当您单击其中一个资产时,该资产的详细信息可以在同一页面的右侧进行编辑. 现在我想我将需要使用2个强类型的局部视图. 1表示左侧菜单,类型为资产列表,1表示资产类型右侧面板. 到目前为止我的左手菜单工作 调节器 public class AssetsController : Controller { // // GET: /Assets/ public ActionResult Index() { var assets =Repo.getAssetList(); return View(assets); } } 布局视图 @model IList<CasWebSite.Models.Asset> <!DOCTYPE html> <html> <head> <title>title</title> </head> <body> <h1> Assets</h1> @RenderBody() </body> </html> 索引视图 @model IList<CasWebSite.Models.Asset> @{ Layout = "_Layout.cshtml"; } <ul> @foreach (var asset in Model) { <li>@asset.Name </li> } </ul> 那么我如何在其他视图中添加我创建一个类型为Asset的新局部视图,控制器会是什么样的,我仍然会通过转到url / assets转到页面,以及如何在2部分之间传递值视图,因为我需要知道在左侧选择了哪个资产进行编辑? 谢谢 解决方法
如果我理解正确,您只有一个视图,您希望在一个局部视图中显示资产列表,另一个局部视图在选择时编辑资产.
首先,您应该创建两个部分视图. Assets.cshtml(局部视图) @model IList<Models.Asset> .. iterate the model and display the menu of assets EditAsset.cshtml(局部视图) @model Models.Asset .. create the form and render the fields for editing 现在在主视图Index.cshtml中,您必须使用Html.Partial / Html.RenderPartial调用Assets.cshtml,而在单击资产链接时将调用另一个. Index.cshtml @Html.Partial("Assets",Model.Assets) @*rendering the partial view*@ ... other html <div id="editAssetContainer"> @*edit form placeholder*@ </div> 请注意,您还应该有一个名为editAssetContainer的占位符,您将在其中显示编辑表单. 现在,未决事项是如何在点击资产链接时在占位符中呈现编辑表单.您可以通过两种方式实现:直接使用jquery或使用Ajax.ActionLink.您可以在Asset.cshtml部分视图中创建ajax链接的所有资产链接. )如果您正在使用Ajax.ActionLink,请不要忘记包含不显眼的ajax库) 防爆. Ajax.ActionLink @Ajax.ActionLink(linkText,"EditAsset",// the action that returns the partial view new {assetId = @asset.Id },// the assetId that to be passed to the action new AjaxOptions // you can specify the targetid and others here.. { UpdateTargetId = "editAssetContainer",InsertionMode = InsertionMode.Replace } ) 在这两种情况下,您都需要在控制器中执行一个返回EditAsset.cshtml的操作. public PartialViewResult EditAsset(int assetId) { var asset = .. get asset using assetId from db. return PartialView(asset); } 更新: 有两种方法可以将模型加载到Assets.cshtml局部视图中.第一种方法是您可以创建一个包含资产列表作为属性的视图模型,并使用此视图模型强烈键入索引视图.然后你可以调用Html.Partial将资产传递给它. 防爆. public class IndexViewModel { public IList<Asset> Assets; .. other properties if there any } Index.cshtml @model IndexViewModel @Html.Partial("Assets",Model.Assets). 第二个方法是你可以有一个子操作,从数据库中获取资产列表并返回局部视图.在这种情况下,您无需强烈键入索引视图. [ChildActionOnly] public PartialViewResult Assets() { var assets = .. get from db return View(assets); } 您可以从索引中调用子操作 @Html.Action("Assets") 您可以使用哪一个最适合您. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-core – 如何使用Asil.net 5(dotnet core)使用Seri
- asp.net-mvc-4 – URL以’/’结尾时的服务器错误
- asp.net-mvc – 我应该在ASP.NET MVC3中附加自定义用户上下
- asp.net-mvc – 如何将行的模型从Kendo Grid传递到可编辑的
- asp.net – UpdatePanel异常处理
- MVC中TempData、ViewData和ViewBag的区别
- ASP.NET,jQuery,脏窗体和window.onbeforeunload
- asp.net-mvc-3 – asp.net mvc 3验证摘要不显示通过不显眼的
- 将自定义ValueProviderFactories添加到ASP.NET MVC3?
- 我想学习ASP.Net 2.0 / 3.5 / 4.0我应该从ASP.Net 2.0开始,
- asp.net – 如何忽略Model属性的验证?
- asp.net-mvc-3 – 使用bootstrap,Asp.net Mvc 3和
- asp.net – 如何在razor viewengine中实现foreac
- .Net Core微服务入门全纪录(六)——EventBus-事
- asp.net-mvc – 链接到iPad上的Google Document
- unit-testing – 对ActionFilter进行单元测试 –
- asp.net-mvc – 使用存储库模式来支持多个提供程
- yield在WCF中的错误使用——99%的开发人员都有可
- asp.net – iFrame中的Response.Redirect(),重定
- MSTest与Ninject,MVC3和WCF