如何在asp.net核心中使用ViewDataDictionary和Html.Partial?
发布时间:2020-12-16 04:01:53 所属栏目:asp.Net 来源:网络整理
导读:我的情况如下: 模型: public class Book{ public string Id { get; set; } public string Name { get; set; }}public class Comment{ public string Id { get; set; } public string BookId { get; set; } public string Content { get; set; } } 控制器:
我的情况如下:
模型: public class Book { public string Id { get; set; } public string Name { get; set; } } public class Comment { public string Id { get; set; } public string BookId { get; set; } public string Content { get; set; } } 控制器: public IActionResult Detail(string id) { ViewData["DbContext"] = _context; // DbContext var model = ... // book model return View(model); } 视图: 详细视图: @if (Model?.Count > 0) { var context = (ApplicationDbContext)ViewData["DbContext"]; IEnumerable<Comment> comments = context.Comments.Where(x => x.BookId == Model.Id); @Html.Partial("_Comment",comments) } 评论局部视图: @model IEnumerable<Comment> @if (Model?.Count > 0) { <!-- display comments here... --> } <-- How to get "BookId" here if Model is null? --> 我试过这个: @Html.Partial("_Comment",comments,new ViewDataDictionary { { "BookId",Model.Id } }) 然后 @{ string bookid = ViewData["BookId"]?.ToString() ?? ""; } @if (Model?.Count() > 0) { <!-- display comments here... --> } <div id="@bookid"> other implements... </div> 但是错误:
当我选择ViewDataDictionary并按F12时,它会命中: namespace Microsoft.AspNetCore.Mvc.ViewFeatures { public ViewDataDictionary(IModelMetadataProvider metadataProvider,ModelStateDictionary modelState); } 我不知道什么是IModelMetadataProvider和ModelStateDictionary? 我的目标:将视图Detail.cshtml中的模型注释发送到部分视图_Comment.cshtml,其中包含一个包含BookId的ViewDataDictionary. 我的问题:我怎么能这样做? 解决方法
另一种使用它的方法是将当前视图的ViewData传递给构造函数.这样,新的ViewDataDictionary将使用您使用集合初始值设定项放入的项目进行扩展.
@Html.Partial("MyPartial",new ViewDataDictionary(ViewData) { { "BookId",Model.Id } }) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-web-api – 使用OAuth和单页应用程序实现Web API
- ASP.Net MVC – 为什么要为favicon.ico创建一个控制器?
- AngularJS_自定义控件_笔记1
- asp.net – 是否可以从ColdFusion引用.NET程序集?
- asp.net-mvc – 如何在页面中显示ASP.net MVC项目版本?
- asp.net-mvc – 可以为MVC Razor Layout指定可搜索的位置格
- asp-classic – XP经典ASP上的IIS 5.1似乎处于单线程模式
- .net – <%#和<%=开启代码有什么区别?
- WiX(Votive)项目参考收获(HEAT)ASP.Net Web应用程序
- .net – appSettings等效于applicationSettings的文件属性
推荐文章
站长推荐
- 从ASP.NET中的代码隐藏文件设置iframe的src的最佳
- ASP.NET Forms Authentication阻止在Login.aspx上
- asp.net-mvc – 在asp.net MVC3中调用局部视图
- asp.net – 如何从mvc .net web app中的jquery(在
- asp.net-core – 使用Scaffold-DBContext设置数据
- 编辑/添加时Asp.Net MVC不重复表单
- asp.net – 在VS Code和VS 2015之间切换
- asp.net – 将Always Encrypted Certificate放在
- asp.net – 没有回发的日历控件
- asp.net – ASP .Net WorldPay集成
热点阅读