Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何创建特定于使用数据库创建的对象的视图?_Asp.net Mvc_Asp.net Core_Entity Framework Core - Fatal编程技术网

Asp.net mvc 如何创建特定于使用数据库创建的对象的视图?

Asp.net mvc 如何创建特定于使用数据库创建的对象的视图?,asp.net-mvc,asp.net-core,entity-framework-core,Asp.net Mvc,Asp.net Core,Entity Framework Core,我正在做一个爱好项目一个bug追踪器。 我希望能够用我的数据库创建一个项目,我可以点击它,然后得到一个视图,在那里我可以记录项目的信息,并且能够为项目制作票证 我制作了两个模型,一个是项目模型,一个是票证模型,我在它们之间创建了一对多的关系。我还做了两个控制器,一个用于项目,一个用于票据。 项目和票证都可以执行CRUD操作。唯一的问题是,我真的不知道如何将它们组合到项目中,以获得单个项目的详细信息。 我和模特之间有关系。但是如何获得特定于我的项目的视图呢 我的车型 public clas

我正在做一个爱好项目一个bug追踪器。 我希望能够用我的数据库创建一个项目,我可以点击它,然后得到一个视图,在那里我可以记录项目的信息,并且能够为项目制作票证

我制作了两个模型,一个是项目模型,一个是票证模型,我在它们之间创建了一对多的关系。我还做了两个控制器,一个用于项目,一个用于票据。 项目和票证都可以执行CRUD操作。唯一的问题是,我真的不知道如何将它们组合到项目中,以获得单个项目的详细信息。 我和模特之间有关系。但是如何获得特定于我的项目的视图呢

我的车型

    public class Project
    {
        [Key]
        public int Project_Id { get; set; }
        [Required]
        public string Name { get; set; }
        [Required]
        public string Description { get; set; }
        public DateTime Created { get; set; }

        List<Ticket> Tickets { get; set; }
    }

public class Ticket
    {
        [Key]
        public int Ticket_Id { get; set; }
        [Required]
        public string TicketName { get; set; }
        [Required]
        public string TicketDescription { get; set; }

        public DateTime TicketCreated { get; set; }

        public string TicketPriority { get; set; }

        public string TicketType { get; set; }

        [ForeignKey("Project")]
        public int Project_Id { get; set; }
        public Project Project { get; set; }

    }

  public class Procedure_s 
{
    [Key]
    [HiddenInput(DisplayValue = false)]
    public int PrId { get; set; }
    [Required]
    public string PrName { get; set; }
    public string PrDescribe { get; set; }
    [Required]
    [DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}")]
    public DateTime PrStartDate { get; set; }
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}")]
    public DateTime PrEndDate { get; set; }
    public string PrNote { get; set; }

    // foreign Keys
    public int PtyId { get; set; }
    [ForeignKey("PtyId")]
    public virtual ProceType ProceType { get; set; }

}

 public class ProceType
{
    [Key]
    [HiddenInput(DisplayValue = false)]
    public int PtyId { get; set; }
    [Required]
    public string PtyName { get; set; }
    public string PtyNote { get; set; }

    //connected tables 
    public virtual IList<Procedure_s> Procedure_s { get; set; }
公共类项目
{
[关键]
公共int项目_Id{get;set;}
[必需]
公共字符串名称{get;set;}
[必需]
公共字符串说明{get;set;}
已创建公共日期时间{get;set;}
列出票证{get;set;}
}
公务舱票
{
[关键]
公共整数票证{get;set;}
[必需]
公共字符串TicketName{get;set;}
[必需]
公共字符串TicketDescription{get;set;}
public DateTime TicketCreated{get;set;}
公共字符串TicketPriority{get;set;}
公共字符串TicketType{get;set;}
[外键(“项目”)]
公共int项目_Id{get;set;}
公共项目{get;set;}
}

我为类似您的情况编写了一个代码,它可以帮助您

型号

    public class Project
    {
        [Key]
        public int Project_Id { get; set; }
        [Required]
        public string Name { get; set; }
        [Required]
        public string Description { get; set; }
        public DateTime Created { get; set; }

        List<Ticket> Tickets { get; set; }
    }

public class Ticket
    {
        [Key]
        public int Ticket_Id { get; set; }
        [Required]
        public string TicketName { get; set; }
        [Required]
        public string TicketDescription { get; set; }

        public DateTime TicketCreated { get; set; }

        public string TicketPriority { get; set; }

        public string TicketType { get; set; }

        [ForeignKey("Project")]
        public int Project_Id { get; set; }
        public Project Project { get; set; }

    }

  public class Procedure_s 
{
    [Key]
    [HiddenInput(DisplayValue = false)]
    public int PrId { get; set; }
    [Required]
    public string PrName { get; set; }
    public string PrDescribe { get; set; }
    [Required]
    [DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}")]
    public DateTime PrStartDate { get; set; }
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}")]
    public DateTime PrEndDate { get; set; }
    public string PrNote { get; set; }

    // foreign Keys
    public int PtyId { get; set; }
    [ForeignKey("PtyId")]
    public virtual ProceType ProceType { get; set; }

}

 public class ProceType
{
    [Key]
    [HiddenInput(DisplayValue = false)]
    public int PtyId { get; set; }
    [Required]
    public string PtyName { get; set; }
    public string PtyNote { get; set; }

    //connected tables 
    public virtual IList<Procedure_s> Procedure_s { get; set; }
公共类程序
{
[关键]
[HiddenInput(DisplayValue=false)]
公共int PrId{get;set;}
[必需]
公共字符串PrName{get;set;}
公共字符串prdescripe{get;set;}
[必需]
[DisplayFormat(DataFormatString=“{0:yyyy/MM/dd}”)]
公共日期时间PrStartDate{get;set;}
[数据类型(DataType.Date)]
[DisplayFormat(DataFormatString=“{0:yyyy/MM/dd}”)]
公共日期时间PrEndDate{get;set;}
公共字符串PrNote{get;set;}
//外键
公共int PtyId{get;set;}
[外键(“PtyId”)]
公共虚拟ProceType ProceType{get;set;}
}
公共类ProceType
{
[关键]
[HiddenInput(DisplayValue=false)]
公共int PtyId{get;set;}
[必需]
公共字符串PtyName{get;set;}
公共字符串PtyNote{get;set;}
//连接表
公共虚拟IList过程{get;set;}
控制器: 细节法

       // GET: ProceTypes/Details/5
    public async Task<IActionResult> Details(int? id)
    {
        if (id == null)
        {
            return NotFound();
        }

        var proceType = await _context.ProceType
            .Include(p => p.Procedure_s)
            .FirstOrDefaultAsync(m => m.PtyId == id);
        if (proceType == null)
        {
            return NotFound();
        }

        return View(proceType);
    }
//GET:ProceTypes/Details/5
公共异步任务详细信息(int?id)
{
if(id==null)
{
返回NotFound();
}
var proceType=wait_context.proceType
.包括(p=>p.程序)
.FirstOrDefaultAsync(m=>m.PtyId==id);
if(proceType==null)
{
返回NotFound();
}
返回视图(proceType);
}
查看: 详细信息页面

@model DirManageSys.Models.TaskSys.ProceType

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

<h1>Details</h1>

<div>
    <h4>ProceType</h4>
    <hr />
    <dl class="row">
        <dt class="col-sm-2">
            @Html.DisplayNameFor(model => model.PtyName)
        </dt>
        <dd class="col-sm-10">
            @Html.DisplayFor(model => model.PtyName)
        </dd>
        <dt class="col-sm-2">
            @Html.DisplayNameFor(model => model.PtyNote)
        </dt>
        <dd class="col-sm-10">
            @Html.DisplayFor(model => model.PtyNote)
        </dd>
    </dl>
</div>
<div>
    <a asp-action="Edit" asp-route-id="@Model.PtyId">Edit</a> |
    <a asp-action="Index">Back to List</a>
</div>

<table id="tblData" class="table table-hover table-bordered text-black-50" style="width:100%">
    <thead>
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.Procedure_s[0].PrName)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Procedure_s[0].PrStartDate)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Procedure_s[0].PrEndDate)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Procedure_s[0].PrDescribe)
            </th>
            
            <th>
                @Html.DisplayNameFor(model => model.Procedure_s[0].PrNote)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Procedure_s[0].ProceType)
            </th>
            <th></th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model.Procedure_s)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.PrName)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.PrStartDate)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.PrEndDate)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.PrDescribe)
                </td>
                
                <td>
                    @Html.DisplayFor(modelItem => item.PrNote)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.ProceType.PtyName)
                </td>
                
                <td>
                    <a asp-action="Edit" asp-route-id="@item.PrId">Edit</a> |
                    <a asp-action="Details" asp-route-id="@item.PrId">Details</a> |
                    <a asp-action="Delete" asp-route-id="@item.PrId">Delete</a>
                </td>
            </tr>
        }
    </tbody>
</table>
@model DirManageSys.Models.TaskSys.ProceType
@{
ViewData[“标题”]=“详细信息”;
}
细节
前体

@DisplayNameFor(model=>model.PtyName) @DisplayFor(model=>model.PtyName) @DisplayNameFor(model=>model.PtyNote) @DisplayFor(model=>model.PtyNote) 编辑| 返回列表 @DisplayNameFor(model=>model.Procedure\u s[0].PrName) @DisplayNameFor(model=>model.Procedure\u s[0].PrStartDate) @Html.DisplayNameFor(model=>model.Procedure[0].PrEndDate) @DisplayNameFor(model=>model.Procedure[0].prdescription) @DisplayNameFor(model=>model.Procedure[0].PrNote) @DisplayNameFor(model=>model.Procedure\u s[0].ProceType) @foreach(模型程序中的var项目) { @DisplayFor(modelItem=>item.PrName) @DisplayFor(modelItem=>item.PrStartDate) @DisplayFor(modelItem=>item.PrEndDate) @DisplayFor(modelItem=>item.prDescripte) @DisplayFor(modeleItem=>item.PrNote) @DisplayFor(modeleItem=>item.ProceType.PtyName) 编辑| 细节| 删除 }
此代码在proce type的详细信息页面上显示程序表, 哪一种观点是正确的

两个模型的一对多关系


在razor页面上,显示第一个模型的信息和第二个模型的表

谢谢!我将浏览:),您将方法放在哪个控制器中的哪个位置?不客气,在ProceType控制器中使用此方法,请注意,它可以用于详细信息,也可以用于索引