Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Blazor(.Net core 3.1)部分类是否等同于“@inject ViewModel”?_Asp.net_Asp.net Core_Razor_Blazor - Fatal编程技术网

Asp.net Blazor(.Net core 3.1)部分类是否等同于“@inject ViewModel”?

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 {

默认的Blazor框架代码将C#代码与.razor文件中的标记代码混合在一起

在本视频中,它介绍了blazor的MVVM。在.razor文件中,只需添加以下两行

@using ViewModels
@inject ViewModel1 ViewModel
C#class
ViewModels.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方法?