小编Mar*_*ell的帖子

为什么我的视图模型不能与实现接口的通用ViewModel绑定?(ASP.NET MVC 3)

我试图通过我的View传递以下ViewModel的实例:

public class CompanyListViewModel<T> where T : ICompany
{
    public IEnumerable<T> CompanyList;
    public IEnumerable<string> StateList;

    public CompanyListViewModel(IEnumerable<T> list)
    {
        CompanyList = list;
    }
}
Run Code Online (Sandbox Code Playgroud)

View采用的方式如下:

@model Project.ViewModels.CompanyViewModels.CompanyListViewModel<ICompany>
Run Code Online (Sandbox Code Playgroud)

我的控制器代码将这样的内容传递给View:

CompanyListViewModel<ICompanyInListAsUser> model = new CompanyListViewModel<ICompanyInListAsUser>(_companyService.FilterByCompanyState(state));
Run Code Online (Sandbox Code Playgroud)

ICompanyInListAsUser接口实现的ICompany接口.本_companyService.FilterByCompanyState(state))类返回IEnumerableCompany对象,进而实现ICompanyInListAsUser接口.

出于某种原因,访问我的视图时收到以下错误:

The model item passed into the dictionary is of type 'Project.ViewModels.CompanyViewModels.CompanyListViewModel`1[Project.ViewModels.CompanyViewModels.ICompanyInListAsUser]', but this dictionary requires a model item of type 'Project.ViewModels.CompanyViewModels.CompanyListViewModel`1[Project.ViewModels.CompanyViewModels.ICompany]'.

如果ICompanyInListAsUser接口确实实现了,为什么我收到此错误ICompany

任何帮助将不胜感激.

谢谢.

编辑

我还想说明我想在这里实现的目标.假设我的应用程序中有多个访问级别(例如用户和管理员).如果我的Company …

c# asp.net-mvc interface viewmodel asp.net-mvc-3

6
推荐指数
1
解决办法
4085
查看次数

如何查看ASP.NET OutputCache的内容?

有什么方法可以列出当前存储在OutputCache中的页面吗?

只是一个路径列表可以做,但如果有办法获得有关每个项目的更多信息(到期等),那就更好了.

asp.net caching outputcache

5
推荐指数
1
解决办法
4334
查看次数

使用AppHarbor时,如何正确管理开发和实时配置文件?

我正在进行一个小项目,我正在试验AppHarbor.对于那些不熟悉它的人,AppHarbor允许您通过添加特定的Git远程,然后将项目/源推送到该远程,在云中自动构建和部署ASP.NET MVC项目.

我目前正在工作的方式是我将在GitHub上有一个主Git存储库,我将其克隆到我的开发机器上.然后我将AppHarbor遥控器添加到我的工作副本中.我会做出我的更改,每次提交保存时都会向GitHub推送,当我准备部署新版本时,我可以将其推送到AppHarbor.

虽然这是一个很棒的工作流程,但它给我带来了一个关于配置文件的新问题.我以前做的是Web.config从源代码控制中排除,而是检入一个名为的文件Web.config.example,其中包含所有正确的密钥但具有虚拟值.然后,我只需在我的开发机器上复制该文件,删除.example扩展名并编辑值以适应.

在部署时,我将创建另一个名为的副本Web.config.live,将值替换为服务器的正确值,上传并删除.live扩展名.

我现在的问题是,如果Web.config没有源代码控制之下,当我推到AppHarbor,该项目将无法正常工作(因为它缺乏适当的配置信息).然而,我不希望在GitHub上公开可见的实时连接字符串,如果我推Web.config送到主存储库那就是它.

我有什么选择?我很感激任何建议.

git version-control configuration-files asp.net-mvc-3 appharbor

5
推荐指数
1
解决办法
638
查看次数

如何创建存储在EF 4.3 Code First Migrations __MigrationHistory表中的压缩模型?

我正在使用Code First Migrations(实体框架4.3),我想获得当前模型的压缩二进制版本,以便我可以手动将其与存储在__MigrationHistory表中的最新模型(或者我已经存在的模型)进行比较存储在文本文件中).

EdmMetadata.TryGetModelHash()方法,但被标记为已弃用,如果可能,我想避免它(出于未来的原因).

我如何在EF 4.3下执行此操作?

编辑:从更多的调查和Pawel的答案中的信息我发现,这个字段不再存储散列,而是模型的压缩二进制表示.这就是我想要创造的.

ef-code-first ef-migrations entity-framework-4.3

5
推荐指数
1
解决办法
1427
查看次数

cython中的空数组:调用PyArray_EMPTY时的段错误

当我尝试运行下面的cython代码生成一个空数组时,就会出现段错误.

有没有办法在python中生成空的numpy数组而不调用np.empty()

cdef np.npy_intp *dims = [3]
cdef np.ndarray[np.int_t, ndim=1] result = np.PyArray_EMPTY(1, dims, 
                                                            np.NPY_INTP, 0)
Run Code Online (Sandbox Code Playgroud)

python arrays numpy cython

5
推荐指数
1
解决办法
772
查看次数

在Opserver中正确配置仪表板

这个问题与Stack Exchange的Opserver监控套件有关:https://github.com/opserver/Opserver

Opserver中的大多数配置文件都是直截了当的.但是,我无法确定如何配置的一个部分是仪表板.

以下是DashboardSetting.json.example文件的片段:

{
    ... 

    "providers": [
        {
            "name": "Orion",
            "type": "Orion",
            "host": "orion.ds.stackexchange.com",
            "connectionString": "Data Source=ny-utilsql01;Initial Catalog=SolarWindsOrion;Integrated Security=SSPI;Timeout=10"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

从我可以收集的内容来看,这个"Orion"提供程序类型具有一个支持数据结构,该数据结构存在于SQL数据库中,并且一旦指向,就会提供与要监视的服务器有关的信息.

我遇到的问题是我不知道如何在我的环境中设置它.我无法找到要运行的任何数据库设置脚本或描述仪表板设置的文档.

.net c# opserver

5
推荐指数
1
解决办法
1995
查看次数

我想用Javascript API V3创建一个甜甜圈(里面的空白就像一个洞)

我想在我的Javascript Google API V3中创建一个漏洞,所以我按照Beginning Google Map API V3开始.但代码正在渲染整个区域.这是我的Javascript代码.

(function() {
    window.onload = function() {
        // Creating a map
        var options = {
            zoom: 6,
            center: new google.maps.LatLng(36.5, -79.8),
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById('map'), options);

        // Creating an array with the points for the outer polygon
        var polyOuter = [
            new google.maps.LatLng(37.303, -81.256),
            new google.maps.LatLng(37.303, -78.333),
            new google.maps.LatLng(35.392, -78.333),
            new google.maps.LatLng(35.392, -81.256)
        ];

        // Creating an array with the points for the inner polygon
        var polyInner = [ …
Run Code Online (Sandbox Code Playgroud)

javascript google-maps google-maps-api-3

5
推荐指数
1
解决办法
934
查看次数

ViewData.TemplateInfo.GetFullHtmlFieldId("PropertyName") 的 ASP.NET Core 等效项是什么?

我正在将 Web 应用程序迁移到 .NET Core,它使用一些 Razor 编辑器模板用于特定输入类型(例如,date为任何DateTime模型属性输出输入)。

几个模板使用以下方法来获取 ID 属性值,以便在 HTML 中的其他地方使用:

ViewData.TemplateInfo.GetFullHtmlFieldId("PropertyName")
Run Code Online (Sandbox Code Playgroud)

但是,这种方法似乎不再存在于 ASP.NET Core 中。

GetFullHtmlFieldName方法仍然存在,因此可以通过执行以下操作获得相同的结果(至少对于我测试过的所有内容):

Regex.Replace(ViewData.TemplateInfo.GetFullHtmlFieldName("PropertyName"), @"[\.\[\]]", "_")
Run Code Online (Sandbox Code Playgroud)

但这对我来说似乎有点不整洁,更不用说旧方法可能会处理一些我不知道的边缘情况。

半小时的谷歌搜索、阅读.NET Core 文档和搜索 SO 没有发现任何有用的东西。我能找到的唯一与远程相关的是这个答案(这只是确认该方法已经消失)。

有谁知道为什么GetFullHtmlFieldId不再存在?这只是一个偶然的遗漏,还是现在有更新更好的方法来获得它?

c# asp.net-mvc razor .net-core asp.net-core

5
推荐指数
1
解决办法
1261
查看次数

是否可以在Firebug中关闭"NetworkError:404 Not Found - XXX"消息?

我使用生产数据库的副本在本地计算机上进行了大量的开发,这意味着数据库中引用的大多数图像文件在本地丢失.因此,"NetworkError: 404 Not Found - XXX"每次刷新页面时,Firebug的最新版本都会向JavaScript控制台发送消息,这使我很难看到我需要的实际信息.

我搜索了Firebug网站和Google Group没有运气.有没有办法禁用这些404通知,仍然可以看到相关的调试信息?

firefox firebug

4
推荐指数
1
解决办法
3971
查看次数

为什么在实现通用接口时TypeScript无法推断函数参数的类型?

我正在Visual Studio 2015中编写TypeScript,安装了语言服务扩展版本2.3.3.0。我在项目的中noImplicitAny设置了参数。truetsconfig.json

给出以下简单的示例代码:

interface ITransformer<TInput, TOutput> {
    transform(input: TInput): TOutput;
}

class Input {
    name: string;
}

class Output {
    name: string;

    constructor(name: string) {
        this.name = name;
    }
}

class Test {
    name: string;
}

class Transformer implements ITransformer<Input, Output> {
    transform = (input) => new Output(input.name);
}
Run Code Online (Sandbox Code Playgroud)

TS编译器给我一个错误TS7006: Parameter 'input' implicitly has an 'any' type

在此处输入图片说明

现在,我可以通过向input参数添加类型注释来轻松修复此错误:

class Transformer implements ITransformer<Input, Output> {
    transform = (input: Input) => new Output(input.name); …
Run Code Online (Sandbox Code Playgroud)

generics typescript

4
推荐指数
1
解决办法
320
查看次数