在C#中,@model
和 ViewModel
是與ASP.NET MVC框架相關的概念。它們之間的關系如下:
@model
:這是一個Razor視圖引擎的指令,用于在視圖中聲明要使用的模型類型。當你在一個視圖文件(例如:.cshtml
)中使用@model
指令時,它告訴視圖引擎該視圖將要綁定到的數據類型。這樣,視圖就可以訪問和操作模型中的數據。@model
指令的語法如下:@model YourNamespace.YourModelClass
ViewModel
:ViewModel是一個設計模式,通常用于在MVC框架中傳遞數據。ViewModel是一個包含了要在視圖中顯示的數據和行為的類。它通常包含來自一個或多個模型的數據,以及用于處理用戶輸入和交互的方法。ViewModel的主要目的是將業務邏輯和數據訪問邏輯與視圖分離,從而實現更好的代碼組織和可維護性。關系:@model
指令用于在視圖中聲明要使用的ViewModel類型,而ViewModel本身是一個包含數據和行為的類,用于在MVC框架中傳遞數據。在視圖中,你可以通過@Model
關鍵字訪問ViewModel的實例,并使用其屬性和方法。
示例:
假設你有一個名為ProductViewModel
的ViewModel類:
public class ProductViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
在視圖文件(例如:Product.cshtml
)中,你可以使用@model
指令聲明要使用的ViewModel類型:
@model YourNamespace.ProductViewModel
然后,在視圖中,你可以通過@Model
關鍵字訪問ViewModel的實例,并使用其屬性和方法:
<h1>@Model.Name</h1>
<p>Price: @Model.Price</p>