如何在asp.net核心中使用ViewDataDictionary和Html.Partial?
发布时间:2020-05-24 16:15:54 所属栏目: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; s
|
我的情况如下: 模型: 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-mvc – 强大类型的ASP.NET MVC与ADO.NET实体框架
- asp.net – 你如何确定哪个验证器失败?
- 深入理解Asp.Net中WebForm的生命周期
- asp.net-mvc-3 – “区域”文件夹中的样式,脚本和图像
- asp.net – 编辑条目时的实体框架DateTime格式
- asp.net – 如何在页面加载中以编程方式向页面添加控件?
- asp.net-mvc-4 – MVC4 MEF插件和控制器命名空间
- asp.net – 如何使usercontrol可用于多个项目?
- asp.net – 无法加载viewstate.正在加载viewstate的控制树必
- ASP.NET MVC与ASP.NET 4.0
推荐文章
站长推荐
- 在asp.net mvc中可以做一个通用的控制器吗?
- asp.net-mvc – 使用多值键创建RouteValueDictio
- asp.net-mvc – 为什么.NET在MVC asp.net应用程序
- asp.net-mvc – 从Application_Start中获取网站的
- iis – 如何从服务器上的经典asp页面执行bat文件
- asp.net webforms路由:可选参数
- asp.net-mvc – 在asp.net mvc中设置为Session的
- asp.net-mvc – 为什么在Asp.net MVC 2中的子操作
- ASP.NET MVC身份验证Cookie未被检索
- asp-classic – Request.BinaryRead(Request.Tot
热点阅读
