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 串列的書籍模型,以便顯示一個包含所有可用書籍、作者、出版商和價格的表格,現在,對于每本書,我應該能夠打開一個描述性的表還包含 ISBN 、頁數和數量。從@Html.DisplayFor(modelItem => line.Titolo) 下面的html 段落中,我插入了一個指向About.cshtml 的鏈接,但我不知道在里面寫什么代碼以及在控制器中寫什么?
這是我目前的控制器:
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>
uj5u.com熱心網友回復:
您可以使用Url.Actionhelper 將 發送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變數中,然后您Session在About方法中檢索它并將其轉換為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);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/425432.html
標籤:C# html asp.net-mvc 模型视图控制器
上一篇:決議值ASP.NETCore和Newtonsoft時遇到意外字符
下一篇:部分視圖資料不顯示在其中
