如何在asp.net razor中连接2个视图

我如何在 asp.net razor 应用程序中包含和显示 2 个视图(我不使用 mvc)。在包装模型中,我有汽车和司机。在包“Pages”中,我创建了 2 个文件夹(CarsPage、DriversPage)。我生成了 crud(添加 -> 新的脚手架项目 -> 使用实体的剃刀页面)。在我的数据库中,一辆车只能有 1 个司机。我想展示所有带司机的汽车,例如。car1、福特、蓝色...drivers1、Jon、... car2、奔驰、黑色...、James、...

在桌车中,我的 pk 是“Id”,而桌车司机的 fk 也是“Id”,我该如何包含和显示所有信息?如果在我的帖子中有些糟糕,请写下来。

public partial class Cars
    {
        public string Id { get; set; }
        public string Name{ get; set; }
        public string Color{ get; set; }...
    }

public partial class Drivers
    {
        public string Id { get; set; }
        public string Name{ get; set; }
        public string Surename{ get; set; }...
    }


@page
@model MyApp.Pages.CarsPage.IndexModel

@{
    ViewData["Title"] = "Index";
}

<h2>Index</h2>

<p>
    <a asp-page="Create">Create New</a>
</p>
<table class="table">
    <thead>
        <tr>

    <th>
                @Html.DisplayNameFor(model => model.Cars[0].Id)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Cars[0].Name)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.cars[0].Color)
            </th>

<th></th>
        </tr>


    </thead>



<tbody>
        @foreach (var item in Model.Cars)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.Id)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Name)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Color)
                </td>
<td>
                    <a asp-page="./Edit" asp-route-id="@item.Id">Edit</a> |
                    <a asp-page="./Details" asp-route- 
 id="@item.Id">Details</a> |
                    <a asp-page="./Delete" asp-route-id="@item.Id">Delete</a>
                </td>
            </tr>
        }
    </tbody>

瑞安

您可以将驱动程序的信息放在局部视图中。将 传递Car.Drivers给索引视图中的局部视图。

你可以参考我下面的演示:

1.型号:

public class Cars
{
    [Key]
    public string Id { get; set; }
    public string Name { get; set; }
    public string Color { get; set; }
    public string DriversId { get; set; }
    [ForeignKey("DriversId")]
    public Drivers Drivers { get; set; }
}

public class Drivers
{
    [Key]
    public string Id { get; set; }
    public string Name { get; set; }
    public string Surename { get; set; }
}

2.DriversPartial.cshtml在文件CarsPage夹中创建一个剃刀视图而不是剃刀页面(添加->新项目->剃刀视图)。输入您希望在接收Drivers模型的局部视图中显示的内容

@model Yournamespace.Drivers
<tr>
    <td>
        @Html.DisplayNameFor(model => model.Id) :
        @Html.DisplayFor(model => model .Id)
    </td>
    <td>
        @Html.DisplayNameFor(model => model.Name) :
        @Html.DisplayFor(model => model .Name)
    </td>
    <td>
        @Html.DisplayNameFor(model => model.Surename):
        @Html.DisplayFor(model => model .Surename)
    </td>

    <td>
        <a asp-page="/DriversPage/Edit" asp-route-id="@Model.Id">Edit</a> |
        <a asp-page="/DriversPage/Details" asp-route-id="@Model.Id">Details</a> |
        <a asp-page="/DriversPage/Delete" asp-route-id="@Model.Id">Delete</a>
    </td>
</tr>

3.使用局部视图 Index.cshtml

@foreach (var item in Model.Cars)
{
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Id)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Color)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Drivers.Id)
        </td>
        <td>
            <a asp-page="./Edit" asp-route-id="@item.Id">Edit</a> |
            <a asp-page="./Details" asp-route-id="@item.Id">Details</a> |
            <a asp-page="./Delete" asp-route-id="@item.Id">Delete</a>
        </td>
    </tr>
    @await Html.PartialAsync("DriversPartial.cshtml", item.Drivers);

}

4.Index.cshtml.cs

public IList<Cars> Cars { get;set; }

    public async Task OnGetAsync()
    {
        Cars = await _context.Cars
            .Include(c => c.Drivers).ToListAsync();
    }

5.结果: 在此处输入图片说明

您可以修改局部视图以添加自定义页面。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在ASP.NET MVC中重置会话超时

如何在ASP.NET 5中注册OData

如何在ASP.NET Web API中接收JSON?

如何在ASP.NET MVC Razor中编码“ /”

如何在ASP.NET Core中的自定义TagHelper中呈现Razor模板?

如何在ASP.NET Core中处理多值Cookie?

如何在ASP.NET Core中防范XSS?

如何在ASP.Net Core中为一个控制器使用一个视图?

在ASP.NET视图中,如何在Razor中访问模型的值并将其分配给变量?

在ASP.NET Razor中,如何在字符串中包含模型属性?

如何在Razor编辑视图中显示选中的单选按钮Asp Net Core MVC

如何在ASP.NET MVC中减去2值

在Razor(chtml)中渲染动态视图,如何在asp.net core 3.0中将FileProvider添加到razor?

如何在ASP .NET Core Razor页面中读取连接字符串

如何在ASP.NET Razor中转义@字符

如何在MVC Razor视图中使用/显示Asp.net数据列表

如何在razor MVC asp.net中合并两个视图模型

如何在Asp.net中获取所有行

如何在jQuery中替换asp.net

如何在asp.net中获取完整的请求URL

如何在asp.net中显示“是”或“否”消息框?

如何在asp.net mvc 中设置Iframe src?

如何在asp.net mvc 中将静态html 转换为razor 视图?

如何在 ASP.NET 中使用视图模型?

如何在 ASP.NET MVC 中连接两个模型?

如何在 ASP.Net Core 的 razor 页面的 ViewData 中连接两个数据?

如何在asp.net中对数据进行分组?

如何在 Asp.Net MVC 中引用视图模型属性 - Razor 视图

如何在asp .net中比较两个时间