Asp.NET Core Mvc中一个视图怎么设置多个强数据类型

时间:2024-11-15 10:52:13

使用视图模型(ViewModel)
创建一个包含所有需要属性的新的视图模型类。这是最常见和推荐的方法,因为它保持了视图的单一职责原则,并且使得视图代码更加清晰和易于维护。

例如,假设你有两个模型 UserOrder,你可以创建一个视图模型 UserOrderViewModel

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Order
{
    public int Id { get; set; }
    public decimal Total { get; set; }
}

public class UserOrderViewModel
{
    public User User { get; set; }
    public Order Order { get; set; }
}

然后在你的控制器中,创建并传递这个视图模型到视图:

public IActionResult SomeAction()
{
    var user = new User { Id = 1, Name = "John Doe" };
    var order = new Order { Id = 101, Total = 99.99M };

    var model = new UserOrderViewModel { User = user, Order = order };

    return View(model);
}

在视图中,你可以这样使用:

@model YourNamespace.Models.UserOrderViewModel

<div>
    <h2>User Information</h2>
    <p>Name: @Model.User.Name</p>
</div>

<div>
    <h2>Order Information</h2>
    <p>Total: @Model.Order.Total</p>
</div>