Asp.net Blazor(.Net core 3.1)部分类是否等同于“@inject ViewModel”?
默认的Blazor框架代码将C#代码与.razor文件中的标记代码混合在一起 在本视频中,它介绍了blazor的MVVM。在.razor文件中,只需添加以下两行Asp.net Blazor(.Net core 3.1)部分类是否等同于“@inject ViewModel”?,asp.net,asp.net-core,razor,blazor,Asp.net,Asp.net Core,Razor,Blazor,默认的Blazor框架代码将C#代码与.razor文件中的标记代码混合在一起 在本视频中,它介绍了blazor的MVVM。在.razor文件中,只需添加以下两行 @using ViewModels @inject ViewModel1 ViewModel C#classViewModels.ViewModel1是ViewModel类。razor可以绑定[parameter]属性 namespace ViewModels { public class ViewModel1 {
@using ViewModels
@inject ViewModel1 ViewModel
C#classViewModels.ViewModel1
是ViewModel类。razor可以绑定[parameter]属性
namespace ViewModels
{
public class ViewModel1
{
[parameter]
....
现在.NET3.1Blazor添加了分部类,您只需要创建一个与Blazor组件同名的分部类。Razor标记可以绑定到C#分部类的属性
这两个要素是一样的吗 是的,.razor文件中的
@code{}
块和partial
类后面的代码可以做相同的事情,但语法不同
您可以在代码隐藏partial
类中使用C#Inject
属性:
[注入]
公共视图模型1视图模型{get;set;}
是的,.razor文件中的@code{}
块和partial
类后面的代码可以做相同的事情,但语法不同
您可以在代码隐藏partial
类中使用C#Inject
属性:
[注入]
公共视图模型1视图模型{get;set;}
Blazor中的部分类功能本质上允许“代码隐藏”,您可以从WinForms或WPF中了解到这一点。您不应该试图将成熟的MVVM应用到web应用程序中。在WPF MVVM中(MVVM最初是为WPF绑定功能而发明的),您应该将表示逻辑放入ViewModel和属性更改通知中。(INotifyPropertyChanged
和ICommand
)这两种方法都不适用于html。Webapplications中的ViewModels与MVC中的ViewModels更接近,它们只是DTO,将数据转化为特定的形状,这使得视图更易于使用。您在链接视频中看到,绑定组件参数不起作用,添加属性只是为了“传递”绑定到较低的类只是多余的代码(这正是INotifyPropertyChanged
试图在WPF的MVVM中解决的问题)因此在视频中使用新的分部类应该优先于MVVM方法?Blazor中的分部类功能本质上允许“代码隐藏”您可能从WinForms或WPF中了解到这一点。您不应该太努力地将成熟的MVVM应用到web应用程序中。在WPF MVVM中(MVVM最初是为WPF绑定功能而发明的),您应该将表示逻辑放入ViewModel并通知属性更改。(INotifyPropertyChanged
和ICommand
)这两种方法都不适用于html。Webapplications中的ViewModels与MVC中的ViewModels更接近,它们只是DTO,将数据转换成特定的形状,从而使视图更易于使用。您在链接视频中看到,绑定组件参数不起作用,只为“传递”添加属性与低级类的绑定只是冗余代码(这正是在WPF的MVVM中尝试解决的INotifyPropertyChanged
问题),因此在视频中使用新的分部类应该优先于MVVM方法?