簡體   English   中英

ASP.NET MVC - DropDownListFor 中的訪問問題

[英]ASP.NET MVC - Access Issue in DropDownListFor

我正在制作一個頁面。 頁面上有一個表格。 我的目標是過濾表系統。 我將使用Class.ClassName進行過濾。

我的代碼:

Index.cshtml

@model List<StudentApp.Models.Entity.StudentTable>
@{
    ViewData["Title"] = "Manage Student";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<br />
<h1>Manage Student</h1>
<br />
@using (Html.BeginForm("Index", "StudentTable", FormMethod.Get))
{
    <p>
         @Html.DropDownListFor(m => m., (List<SelectListItem>)ViewBag.ClassT, new { @class = "form-control"}),
        <b>Student Name:</b> @Html.TextBox("p");
        <input type="submit" value="Ara">
    </p>
}
<table id="tbl1" class="table table-bordered">
    <tr>
        <th>
            Student ID
        </th>
        <th>
            Student Name
        </th>
        <th>
            Student Class
        </th>
        <th>
            Edit
        </th>
        <th>
            Delete
        </th>
    </tr>
    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td>
                    @item.Id
                </td>
                <td>
                    @item.Name
                </td>
                <td>
                    @item.Class.ClassName
                </td>
                <td>
                    <a href="/StudentTable/EditStudent/@item.Id" class="btn btn-success">Edit</a>
                </td>
                <td>
                    <a href="/StudentTable/Delete/@item.Id" class="btn btn-danger">Delete</a>
                </td>
            </tr>
        }
    </tbody>
</table>

<a href="/StudentTable/AddStudent"  class="btn btn-primary">Add Student</a>

Controller

StudentDatabaseContext db = new StudentDatabaseContext();
public IActionResult Index(string p)
{
    var studentList = db.StudentTables.Include(x => x.Class).ToList();
    var degerler = from d in db.StudentTables select d;
    if (!string.IsNullOrEmpty(p))
    {
        degerler = degerler.Where(m => m.Class.ClassName.Contains(p));
    }
    return View(degerler.ToList());
}

Model

using System;
using System.Collections.Generic;

namespace StudentApp.Models.Entity
{
    public partial class StudentTable
    {
        public int Id { get; set; }
        public string? Name { get; set; }
        public int ClassId { get; set; }

        public virtual ClassTable? Class { get; set; }
    }
}

我遇到了這樣的問題:

在此處輸入圖像描述

正如您在圖片中看到的,我無法訪問名為Class.ClassName的數據。 我的目標是列出 DropDownListFor 中的項目。 為什么會這樣? 我該如何解決? 感謝幫助。

在 controller 中。 添加這個

ViewBag.ClassT = new SelectList((from s in db.Class.OrderBy(a => a.Code)
                                          select new { ID = s.Id, 
                                           FullDescription = s.Code }),
                                         "ID", "FullDescription");

在視圖中

@Html.DropDownListFor(m => m.ClassId, (SelectList)ViewBag.ClassT,"-Select-",new { @class = "form-control})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM