如何在页面之间创建链接?

how to create links between pages?

public class Libro
    {
        public string Titolo { get; set; }
        public string Autore { get; set; }
        public string Editore { get; set; }
        public int ISBN { get; set; }
        public int Pagine { get; set; }
        public decimal Prezzo { get; set; }
        public int Quantità { get; set; }



        public Libro BuildLibro(string input)
        {
            Libro result = null;

            if (!String.IsNullOrEmpty(input))
            {
                var inputArray = input.Split('*');

                if (inputArray.Length >= 6)
                {
                    result = new Libro();

                    result.Titolo = inputArray[0];
                    result.Autore = inputArray[1];
                    result.Editore = inputArray[2];

                    if (!string.IsNullOrEmpty(inputArray[3]))
                    {
                        int.TryParse(inputArray[3], out int num);
                        result.ISBN= num;
                    }
                    if (!string.IsNullOrEmpty(inputArray[4]))
                    {
                        int.TryParse(inputArray[4], out int num);
                        result.Pagine = num;
                    }
                    if (!string.IsNullOrEmpty(inputArray[5]))
                    {
                        decimal.TryParse(inputArray[5], out decimal num);
                        result.Prezzo = num/100;

                    }
                   
                    if (!string.IsNullOrEmpty(inputArray[6]))
                    {
                        int.TryParse(inputArray[6], out int num);
                        result.Quantità = num;

                    }

                }
            }
            return result;
        }
    }
}

在Index.cshtml

    <table class="table">
                    <tr>
                        <th>
                            Titolo
                        </th>
                        <th>
                            Autore
                        </th>
                        <th>
                            Editore
                        </th>
                        <th>
                            Prezzo(€)
                        </th>
                    </tr>
            
                    @foreach (var line in Model)
                    {
                        <tr>
                            <td>
                                @Html.DisplayFor(modelItem => line.Titolo)
 <p> <a href="@Url.Action("About","Home", new { titoloId = line.Titolo })"> Visualizza la scheda </a></p>
                            </td>
            
                            <td>
                                @Html.DisplayFor(modelItem => line.Autore)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => line.Editore)
                            </td>
                            <td>
                                @Html.DisplayFor(modelItem => line.Prezzo)
                            </td>
                        </tr>
                    }
            
                </table>
             </body>
            </html>

我已经根据 file.txt 的列表创建了一本书的模型,以便显示 table 以及所有可用的书籍、它们的作者、出版商和价格,现在,每本书,我应该能够打开描述性的 sheet 也包含 ISBN 、页数和数量。从@Html.DisplayFor(modelItem => line.Titolo) 下面的html 段落中,我在About.cshtml 中插入了一个link,但我不知道是什么代码在里面写什么,在控制器里写什么?

这是我目前的控制器:

public ActionResult Index()
        {
            var fileInput = Reader.Read("C:/Users/test/source/repos/Books/Books/App_Data/Libri.txt");

            var libriList = new List<Libro>();
            if (fileInput != null)
            {
                for (var i = 1; i < fileInput.Count; i++)
                {
                    var libri = new Libro();
                    libri = libri.BuildLibro(fileInput[i]);

                    if (libri != null)
                    {
                        libriList.Add(libri);
                    }
                }
            }
        Session["currentLibriList"] = libriList;
        return View(libriList);
    }

       public ActionResult About(string titoloId)
    {
        var myFilteredList = new List<Libro>();
        if (Session["currentLibriList"] != null)
        {
            var lookupList = (List<Libro>)(Session["currentLibriList"]);
            myFilteredList = (List<Libro>)lookupList.Where(x => x.Titolo == titoloId);
        }
        return View(myFilteredList);
    }

这是About.cshtml

<html>
<body>

    <table class="table">
        @foreach (var line in Model)
        {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => line.Titolo)
            </td>
            <td>
                @Html.DisplayFor(modelItem => line.Autore)
            </td>
            <td>
                @Html.DisplayFor(modelItem => line.Editore)
            </td>
            <td>
                @Html.DisplayFor(modelItem => line.Prezzo)<p>€</p>
            </td>
            <td>
                @Html.DisplayFor(modelItem => line.Pagine)
            </td>
            <td>
                @Html.DisplayFor(modelItem => line.Quantità)
            </td>
            <td>
                @Html.DisplayFor(modelItem => line.ISBN)
            </td>

        </tr>
        }

    </table>
</body>
</html>

您可以使用 Url.Action 帮助程序将 line.Titolo 发送到您的 Controller 方法并获取您的数据:

<td>
    <p><a class="btn btn-default" href="@Url.Action("About","Home", new { titoloId = line.Titolo })">@line.Titolo</a></p>
</td>

您的 Index 方法会将数据存储在 Session 变量中,然后您在 About 方法中检索此 Session 并将其转换为 List<Libro> 类型。获得列表后,您可以根据 titolId 过滤掉它。您的最后一步是将此筛选列表发送到您的 About 视图。您需要使用过滤后的数据根据​​您的要求构建 About 视图。

public ActionResult About(string titoloId)
{
    var myFilteredList= new List<Libro>();
    //Get data for titoloId
    if (Session["currentLibriList"] != null)
    {
      var lookupList = (List<Libro>)(Session["currentLibriList"]);
      myFilteredList=lookupList.Where(x=>x.Titolo == titoloId);
    }
    return View(myFilteredList);
}

public ActionResult Index()
{
    var fileInput = Reader.Read("C:/Users/test/source/repos/Books/Books/App_Data/Libri.txt");

    var libriList = new List<Libro>();
    if (fileInput != null)
    {
        for (var i = 1; i < fileInput.Count; i++)
        {
            var libri = new Libro();
            libri = libri.BuildLibro(fileInput[i]);

            if (libri != null)
            {
                libriList.Add(libri);
            }
        }
    }
    //Set your session here
    Session["currentLibriList"]=libriList;
    return View(libriList);
}