如何在“编辑”和“详细信息”页面之间共享“注释”部分?

问题描述

我有一个简单的Asp.Net MVC Core应用程序(“待办事项列表”)。每个“ Todo”项目都有零个或多个“ Notes”。

问题:

我已将相同的“注释”部分复制/粘贴到“编辑”和“详细信息” .cshtml页面中。如果我可以一次为.Notes编写.cshtml,然后在两个页面中简单地“包含”,那就太好了。

我尝试使用部分类...但是由于每个父页面中的模型不同,因此无法正常工作

Edit.cshtml:

@page
@model Todo.Pages.EditModel
@using Todo.Pages.TodoList
...
<div>
  <!-- I want to do something like this... -->
  <partial name="notes_history" />
</div>
  

notes_history.cshtml:

@model Todo.Pages.EditModel

<div class="form-group card">
  <div class="card-body">
    <h4>Todo List History</hr>
    <table class="table">
      <thead>
        <tr>
          <th>@Html.DisplayNameFor(model => model.TodoItem.Notes[0].CreatedDate)</th>
          <th>@Html.DisplayNameFor(model => model.TodoItem.Notes[0].Text)</th>
          ...
      <tbody>
        @foreach (var note in model.TodoItem.Notes)
        {
          <tr>
            <td>@Html.DisplayFor(modelItem => note.CreatedDate)</th>
            <td>@Html.DisplayFor(modelItem => note.Text)</th>
          ...

这在我的“编辑”页面上可以正常使用...但是在“详细信息” ..或我可能要在其中包括“笔记历史记录”的任何其他页面上都无法使用。

如何使用部分类进行此项工作?或者我可以使用哪些不同的Asp.Net Core功能在“编辑”之间共享“注释”。 “详细信息”(可能还有其他)父页面?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)