簡體   English   中英

視圖模型和PartialView問題MVC C#

[英]Viewmodels and PartialView problems MVC C#

我對C#/ MVC還是比較陌生,並且對某些基本的知識一無所知,因此,一個或兩個有用的人可以幫助我。 我要嘗試的是使用Viewmodels和局部視圖的概念。 我想創建一個包含我的視圖模型中所有書籍的列表,然后將其解析為partialView,這是一個好方法還是應該為“書架”創建一個普通的類?

無論如何,我無法在局部視圖中顯示“書架”,並且出現了完全不同的錯誤,因此對於從哪里開始進行故障排除,我有點迷失了。

下面的代碼給我以下錯誤atm:錯誤CS1001:預期的標識符

//In my Model folder
Public class Book
{
public int ID       { get; set; }
public string Name  { get; set; }
public int Pages    { get; set; }
}

//In my ViewModel folder
public class BookshelfVM
{
public List<Book> Books { get; set; }
}

//Controller action

public class BookshelfController : Controller
{
public ActionResult ListBook()
{
  BookshelfVM Viewmodel = new BookshelfVM();

        Viewmodel.Books = new List<Book>()
        {
            new Book()
            {
                ID = 1,
                Name = "How to...",
                Pages = 312
            },
            new Card()       
            {
                ID = 2, 
                Name = "How to... two",  
                Pages = 512
            }
        };
        return View("_ListBook", Viewmodel);
}
}

//View
@model How.ViewModels.BookshelfVM
@{
ViewBag.Title = "Bookshelf";
}
Lorem ipsum
<div>
    <p>
        @Html.Partial("_ListBook")</p> *error pointing here
</div>

//Partial View
@model How.ViewModels.BookshelfVM

@foreach (var Book in How.Models.)
{
<div>

    @Model.Book
</div>
}

您需要將模型傳遞到局部視圖。 代替:

@Html.Partial("_ListBook")

你需要:

@Html.Partial("_ListBook", Model)

盡管為什么您的控制器操作還返回相同的局部視圖有些令人困惑。 不知道您的推理在哪里,通常使用局部視圖來呈現頁面的某些重復部分或通過ajax加載的頁面的某些部分。

而且foreach循環是錯誤的。 您需要以下內容:

@foreach (var book in Model.Books)
{
   <div>@book.Name</div>
}

暫無
暫無

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

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