如何在asp.net core中将ViewDataDictionary与Html.Partial一起使用?

2023-12-20

我的案例是这样的:

Model:

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);
}

View:

详细视图:

@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 } })

Then

@{
    string bookid = ViewData["BookId"]?.ToString() ?? "";
}

@if (Model?.Count() > 0)
{
    <!-- display comments here... -->
}

<div id="@bookid">
    other implements...
</div>

但错误:

“ViewDataDictionary”不包含采用 0 的构造函数 论点

当我选择ViewDataDictionary并按F12,它会达到:

namespace Microsoft.AspNetCore.Mvc.ViewFeatures
{
    public ViewDataDictionary(IModelMetadataProvider metadataProvider, ModelStateDictionary modelState);
}

我不知道是什么IModelMetadataProvider and ModelStateDictionary?

我的目标:发送模型comments从视图Detail.cshtml到部分视图_Comment.cshtml with a ViewDataDictionary其中包含BookId.

我的问题:我该怎么做?


使用它的另一种方法是传递ViewData将当前视图放入构造函数中。这样新的ViewDataDictionary使用您使用集合初始值设定项放入的项目进行扩展。

@Html.Partial("MyPartial", new ViewDataDictionary(ViewData) { { "BookId", Model.Id } })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在asp.net core中将ViewDataDictionary与Html.Partial一起使用? 的相关文章

随机推荐

  • Java 注释中的 /** 和 /*

    有什么区别 comment and comment 在Java中 我什么时候应该使用它们 第一种形式称为Javadoc http en wikipedia org wiki Javadoc 当您为代码编写正式的 API 时 可以使用它 这些
  • F# 中的列表理解与高阶函数

    我有SML背景 对高阶函数感觉很舒服 但我真的不明白列表理解的想法 是否存在列表理解比高阶函数更适合的情况List反之亦然 我听说列表理解比高阶函数慢 在编写性能关键函数时我应该避免使用它吗 为了举例 请看一下在 F 中高效投影列表列表 h
  • SQL Server通过脚本管理列描述

    有没有办法通过脚本更改 更新和删除 删除列描述 I use sp addextendedproperty添加描述 但不允许更新 当我尝试使用相同的 sp 更新现有描述值时 它会显示类似 描述属性已存在 之类的内容 改变或删除 创建类似的解决
  • RecyclerView.Adapter 内的 onActivityResult 未使用

    我在适配器内有一个按钮 可以进入画廊 MyAdapter extends RecyclerView Adapter
  • 自定义数据类型在设备之间不同步

    我正在尝试使用 Google Fit API 来存储自定义数据类型 我可以在单个设备上很好地插入和检索它们 但是当我在不同设备上登录同一个 Google 帐户时 数据不存在 我可以从每个设备创建和检索数据 但它们都保留自己的数据 并且不通过
  • 更改 matplotlib pyplot 图例中线条的线宽[重复]

    这个问题在这里已经有答案了 我想更改 pyplot 图例中的线条样本的厚度 宽度 图例中的线样本的线宽与它们在图中表示的线相同 因此 如果线y1 has linewidth 7 0 图例对应的y1标签上也会有linewidth 7 0 我希
  • 启动没有控制台窗口的程序(在后台)

    我想在 Windows 启动时启动一个简单的程序 但我不想显示与该程序关联的控制台输出窗口 只是为了测试 该程序可以简单如下 int main int argc char argv while 1 printf hello world n
  • 为什么 PHP 中 65.6*100%10 等于 9 而不是 0?

    echo 65 7 100 10 0 echo 65 6 100 10 9 lt echo 6560 10 0 echo 65 5 100 10 0 有人可以解释一下为什么吗 EDIT 对于人类或非程序员来说 结果 9 显然是错误的 我怎样
  • 在 Outlook html 电子邮件中,浮动不起作用

    我想要这样的布局 其中有一个矩形框 左边的盒子里有一个文本 右边有一个图像 这在浏览器中看起来很好 但是当作为 html 电子邮件发送时 在 Outlook 中浮动权限似乎不起作用 它将图像放在文本下方的下一行 关于如何实现这项工作有什么想
  • html 表格如何通过更改悬停时的边框来突出显示列?

    我正在探索如何设计表格样式 以便当鼠标悬停在列上时可以更改边框 当鼠标悬停在一列上时 我想通过更改边框颜色来突出显示该列 需要强调的是 我将以下 JavaScript 代码与 jQuery 库结合使用 td hover function v
  • 构造函数:默认参数和委托参数之间的区别

    今天 我偶然发现这些标准声明 http en cppreference com w cpp container vector vector of std vector构造函数 until C 14 explicit vector const
  • 如何使用 pip 将 vcs 中的 Python 包可编辑安装到特定目录中?

    默认情况下 pip 安装editable打包成srcPython安装目录的子目录 我想使用 pip 支持从源代码控制中检出软件包 将版本控制中的软件包安装到我选择的目录中 例如 pip install e git https github
  • HATEOAS 中“_embedded”的含义和用法

    我正在使用 Spring Data REST 它支持 HATEOAS 我对这个范式很陌生 In GET来自我的 RESTful Web 服务的响应 我经常在名为的节点内收到结果 embedded 我在想 what is embedded节点
  • JPanel 在 JFrame 上没有改变

    我的想法是拥有一个 全局 JFrame 然后我可以根据需要添加 删除 JPanel 以创建一个流畅的应用程序 目前 当我尝试从第一个 JPanel 更改为第二个 JPanel 时 第二个 JPanel 将不会显示 我的代码如下 处理程序 运
  • 计算每个段落中的字符数

    我正在尝试找到一种方法来计算页面上每个段落中的字符数 我发现下面这个小片段可以计算每个段落中的单词数 效果很好 是否可以修改为也包括字符数 互联网上有很多解决方案 但它们只关注特定的字符串或文本区域 并且往往变得非常长和复杂 我不介意计数中
  • 使用默认值从 Mac 上的命令行修改 Plist

    有谁知道如何使用命令行修改 Plist 文件defaults 目前有两个词典URL types大批 我需要添加另一个 我尝试过的每个命令要么替换了整个字典 要么创建了一个名为的新数组URL types而不是编辑它 关于如何在默认情况下完成此
  • 如何检测数据集中的所有空列并删除\删除它们?

    正如标题中所建议的 我想删除所有空列 变量 其中所有记录均为空或等于 null 或 以减少以后执行的时间成本 详细场景 我有一个包含 1000 列的 dataset 其中一些 很多是空的 现在我想创建一个新的数据集 其中需要在先前数据集的某
  • 如何存储由 std::unique_ptr 给出的抽象类的对象向量?

    我有一个循环 其中我使用一个函数将 std unique ptr 返回到抽象类的对象 我想通过push back将这些对象存储到std vector中 但由于对象是抽象类型 我收到以下错误 error cannot allocate an
  • 防止 Perl 中的循环引用内存泄漏

    我最近问了一个question https stackoverflow com questions 31971633 perl memory management when overwriting objects关于 Perl 中的覆盖对象
  • 如何在asp.net core中将ViewDataDictionary与Html.Partial一起使用?

    我的案例是这样的 Model public class Book public string Id get set public string Name get set public class Comment public string