小编Fab*_*lai的帖子

ViewModel的责任

我正在构建一个工具,其目标是基于一些参数下载文件.

第一步是设置(或检索)这些参数.

FileDownloadsManager检索不同的参数集(比如说通过配置文件):它确切地知道要下载正确文件的参数.

那些参数存储在一个类中,我有一个这个类的实例列表.

这意味着我可以使用多个可能的参数集下载我的文件.

在这些ParameterSets周围,我构建了ParametersSetsViewModels,以便我可以在列表中显示它们,并添加一些View-Only属性.在内部,ParametersSetsViewModels具有对底层ParametersSets的引用,这些ParametersSets用作View Model成员的源.

现在,当我选择我的参数集时,我希望下载相关文件.

这应该是谁的责任?

我有这种感觉,如果ViewModel过于活跃,通过一个返回下载文件的方法,这将违背MVVM模式; 你对此有什么看法 ?

奖励:使用BackgroundWorkers或WebClient的异步方法在后台下载应该是可行的.

architecture mvvm

8
推荐指数
1
解决办法
4417
查看次数

Access-Control-Allow-Origin标头具有多个值或预检jquery ajax到Web Api 2

我有一个在localhost上运行的asp.net Web表单应用程序:6414 然后jquery ajax在localhost上调用Web Api服务:11974

我收到错误

The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed. Origin 'http://localhost:6414' is therefore not allowed access. 
Run Code Online (Sandbox Code Playgroud)

所以我梳理了谷歌和stackoverflow,发现了大量相互矛盾的 信息.

1. Fix with web.config   
2. Fix with jquery ajax call
3. Fix with CORS in web.api 
Run Code Online (Sandbox Code Playgroud)

我尝试过启用Cors和web.config以及各种技术.

目前我想知道问题实际上是Web表单jquery代码作为发送者,但实际上响应头部意味着它来自web api服务...

我看看我的响应标题,我看到其中的两个

Access-Control-Allow-Origin:*  ( repeated TWICE)
Run Code Online (Sandbox Code Playgroud)

我尝试在Web Api Project中的web.config中注释掉这一行

<add name="Access-Control-Allow-Origin" …
Run Code Online (Sandbox Code Playgroud)

c# asp.net ajax jquery asp.net-web-api

7
推荐指数
1
解决办法
2万
查看次数

Prism、Regions、Magic 字符串和重构:我在这里遗漏了什么吗?

为了在我的应用程序中构建具有不同区域的复合应用程序视图,直到现在,我一直使用内容展示器并使用数据绑定来设置其内容。

如果我想改变它的内容,我只需要使用一个事件聚合器,发布一个ViewZoneChangedEvent,在“shell”窗口中订阅它,并相应地更新视图模型,以便新数据可用于绑定和界面待更新。

现在,我最近在 Prism 中遇到了这些 Region,实际上我已经看过它们一段时间了,但我对它们感到不舒服,但是由于 Prism 是某种“最佳实践指南”,因此我可能遗漏了一些东西:让我解释一下为什么我觉得不舒服。

以我以前的做法,与 XAML 没有耦合。你从来没有提到应该出现在 XAML 中的任何特定的魔法字符串,我认为这是必不可少的,因为样式可以改变。

如果至少区域会执行区域名称的编译时检查(检查它是否真的存在于某处),这将强制使用有效的区域名称并且在重构时非常有帮助,但据我所知,没有这样的事情。有些人使用枚举和枚举的ToString方法将其转换为字符串并将其用作区域名称,但同样,据我所知,没有真正的例程来检查输入的字符串是否真的有效并显示错误例如,在为 Brushes.InValidColor 编译它的方式时。

所以,我的问题如下:与普通的旧绑定(如果您希望跨 ViewModel 进行通信,加上 eventAggregator)相比,棱镜区域带来了什么?

我对区域名称的编译时验证的假设是否正确?

wpf prism mvvm regions

2
推荐指数
1
解决办法
2612
查看次数

标签 统计

mvvm ×2

ajax ×1

architecture ×1

asp.net ×1

asp.net-web-api ×1

c# ×1

jquery ×1

prism ×1

regions ×1

wpf ×1