Опять хочу задать вопрос о том, как составить и передать список IEnumerable?
Мой контроллер:
public class BookController : Controller
{
// GET: Book
public ActionResult Index()
{
BookModel viewBookList = new BookModel();
viewBookList.ViewBookListing(); // viewBookList.ViewBookListing()
// pass the model values in
// ViewBookListing method which is located into my bookmodel
return View(viewBookList);
}
}
Моя модель:
namespace myWeb.Models
{
public class BookModel
{
public List<BookModel> showAllBooks = new List<BookModel>();
// *other properties*
public DataTable viewAllBooks()
{
try
{
Connection viewAll = new Connection();
viewAll.cmdType = CommandType.StoredProcedure;
viewAll.SQL = "insertSelectUpdateDeleteBooks";
viewAll.ParamAndValue = new string[,]
{
{"@bookid", "" },
{"@authorid", "" },
{"@bookcatid", "" },
{"@booktitle", ""},
{"@isbn", ""},
{"@pubplace", "" },
{"@pubdate", "" },
{"@bookphoto", "" },
{"@statementtype", "Select" }
};
return viewAll.GetData();
}
catch (Exception)
{
throw;
}
}
return viewAll.GetData ();это GetData получить данные или записи из моего уровня доступа к данным
public void ViewBookListing()
{
List<BookModel> showAllBooks = new List<BookModel>();
DataTable dt = this.viewAllBooks();
if (dt != null)
{
if (dt.Rows.Count > 0)
{
foreach (DataRow row in dt.Rows)
{
showAllBooks.Add(new BookModel()
{
qty = int.Parse(row["Quantity"].ToString()),
bookTittle = row["bookTitle"].ToString(),
authorName = row["Author"].ToString(),
ISBN = row["ISBN"].ToString(),
pubPlace = row["pubPlace"].ToString(),
pubDate = DateTime.Parse(row["pubDate"].ToString()),
DDC = row["DDC"].ToString(),
edition = row["edition"].ToString(),
volume = row["volume"].ToString(),
CategoryName = row["Category"].ToString()
});
}
}
}
this.showAllBooks = showAllBooks;
}
}
}
Вот моя страница просмотра или индекс.Мне не нравится такой способ передачи данных в поле зрения, и я хотел передать данные модели или данные, используя IEnumerable
, но проблема в том, что я не знаю, как это сделать.
@using myWeb.Models;
@model BookModel
@{
ViewBag.Title = "Index";
}
@foreach(myWeb.Models.BookModel item in Model.showAllBooks)
{
<tr>
<td></td>
<td>@Html.DisplayFor(Model => item.bookTittle)</td>
<td>@Html.DisplayFor(Model => item.authorName)</td>
<td>@Html.DisplayFor(Model => item.ISBN)</td>
<td>@Html.DisplayFor(Model => item.CategoryName)</td>
<td>@Html.DisplayFor(Model => item.DDC)</td>
<td>@Html.DisplayFor(Model => item.pubPlace)</td>
<td>@Html.DisplayFor(Model => item.pubDate)</td>
<td></td>
<td>
@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
</td>
</tr>
}