小编Tom*_*han的帖子

什么是ASP.Net MVC视图引擎?

关于ASP.Net MVC中的View Engines,以及使用"自定义"而不是"默认" 的问题,有很多关于SO的问题.对于我作为业余爱好程序员来说,术语"视图引擎"是新的,我无法理解它的含义.所以,我的问题是:

  1. 什么是View引擎?

  2. View Engine的功能是什么,MVC模式中扮演的角色是什么?(与1 ...密切相关)

  3. 程序员希望通过切换到不同的View Engine来改变/避免默认View Engine的主要特征/属性是什么?

  4. 当开发人员选择使用与标准不同的其他视图引擎时,常见的其他视图引擎的主要优点是什么?(我已经多次看到"Spark View引擎"这个名字了,我打赌也有其他人).

  5. 何时(在什么情况下)我想开发自己的View Engine?

在那里,我认为这就是我想问的问题(现在).给我看View Engines 101!=)

asp.net-mvc viewengine

14
推荐指数
1
解决办法
3756
查看次数

如何将ND阵列的最后两个维度作为2D阵列?

我在MATLAB中有一个3D数组,有size(myArray) = [100 100 50].现在,我想以2D矩阵的形式获得由第一维中的索引指定的特定层.我试过了myMatrix = myArray(myIndex,:,:);,但这给了我一个3D数组size(myMatrix) = [1 100 50].

我如何告诉MATLAB我对第一维不感兴趣(因为只有一层),所以它可以简化矩阵?

注意:我还需要使用第二个索引来执行此操作,size(myMatrix) = [100 1 50]而不是所需的渲染[100 50].解决方案应该适用于两种情况,并且优选地适用于第三维.

arrays matlab matrix multidimensional-array n-dimensional

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

Docker COPY与文件夹通配符

给定这样的文件结构:

project root
|-- X.sln
|-- src
|    |-- Foo
|    |    |-- Foo.fsproj
|    |    |-- Foo.fs
|    |-- Bar
|         |-- Bar.fsproj
|         |-- Bar.fs
|-- test
     |-- Baz
          |-- Baz.fsproj
Run Code Online (Sandbox Code Playgroud)

我想首先将所有.fsproj文件添加到我的Docker镜像,然后运行命令,然后添加其余文件.我尝试了以下,但当然它不起作用:

COPY X.sln .
COPY **/*.fsproj .
RUN dotnet restore
COPY . .
RUN dotnet build
Run Code Online (Sandbox Code Playgroud)

这个想法是在前两个COPY步骤之后,图像上的文件树是这样的:

working dir
|-- X.sln
|-- src
|    |-- Foo
|    |    |-- Foo.fsproj
|    |-- Bar
|         |-- Bar.fsproj
|-- test
     |-- Baz
          |-- …
Run Code Online (Sandbox Code Playgroud)

docker dockerfile

12
推荐指数
3
解决办法
5438
查看次数

属性似乎根本不起作用

我在控制器操作上使用[HandleError]属性时遇到问题 - 它似乎根本不起作用(即过滤器是否存在并不重要 - 我得到相同的结果......).当抛出异常时,我在'/'应用程序错误页面而不是我的自定义视图中得到标准的红色服务器错误.

我在SO上找到了关于这个主题的几个其他线程,在大多数情况下,似乎在web.config中将customErrors选项设置为On解决了这个问题.它不适合我,所以我需要找到一个不同的解决方案.

我的控制器动作:

[HandleError]
public ActionResult Index()
{
    throw new Exception("oops...");
    return View();
}
Run Code Online (Sandbox Code Playgroud)

在我的web.config文件中

<customErrors mode="On"></customErrors>
Run Code Online (Sandbox Code Playgroud)

我确保Error.aspx文件也在共享目录中.我错过了什么?

我正在运行ASP.NET MVC RC Refresh.

error-handling asp.net-mvc attributes handleerror

11
推荐指数
1
解决办法
6874
查看次数

我应该用通用类定义命名我的文件?

我正在编写几个都有泛型类型参数的类,但是我需要重载这些类,因为在不同的场景中我需要不同数量的参数.基本上,我有

 public class MyGenericClass<T> { ... }
 public class MyGenericClass<T, K> { ... }
 public class MyGenericClass<T, K, L> { ... }
 // it could go on forever, but it won't...
Run Code Online (Sandbox Code Playgroud)

我希望它们都在同一个命名空间中,但每个类在一个源文件中.我该怎么命名这些文件?有最好的做法吗?

c# generics filenames

11
推荐指数
1
解决办法
1787
查看次数

有没有办法对副作用进行单元测试?

任何代码都可以提供副作用.大多数情况下,副作用可能是设计糟糕和/或需要重构的标志,但在进行单元测试时,我发现很难对其进行测试.请考虑以下示例:

[Test]
public void TrimAll_Removes_All_Spaces()
{
    // Arrange
    var testSubject = "A    string  with     lots   of     space";
    var expectedResult = "Astringwithlotsofspace";

    // Act
    var result = testSubject.TrimAll();

    // Assert
    Assert.AreEqual(expectedResult, result);
}
Run Code Online (Sandbox Code Playgroud)

测试以下扩展:

public static string TrimAll(this string str)
{
    PokeAround();

    return str.Replace(" ", "");
}
Run Code Online (Sandbox Code Playgroud)

测试将通过,但没有后卫的副作用.呼叫的影响PokeAround将完全被忽视.

鉴于你不知道是什么PokeAround- 它可能是任何东西! - 你怎么写一个防范它的测试?它可能吗?

澄清: 关于PokeAround完全未知是一个非常不可能的场景,有一些评论,因为我们在编写测试时有源代码.我问这个问题的原因是,找到一种方法来防止后来添加的副作用.也就是说,当我编写测试时,我可能会将exension方法看起来像这样:

public static string TrimAll(this string str)
{
    return str.Replace(" ", "");
}
Run Code Online (Sandbox Code Playgroud)

测试通过,一切都很好.然后,一个月后,当我正在度假时,一位同事加了PokeAround电话.我希望我已经写过的测试失败,因为他做了.

unit-testing side-effects

11
推荐指数
1
解决办法
3658
查看次数

如何在javascript中区分对象和字符串之间的区别?

我有一个javscript函数(实际上是一个jQuery插件),我想要调用它

myFunction("some input");
Run Code Online (Sandbox Code Playgroud)

要么

myFunction({ "prop": "value 1", "prop2": "value2" });
Run Code Online (Sandbox Code Playgroud)

在功能方面,我如何区分两者?

换句话说,在if下面的条件下应该怎么做?

if (/* the input is a string */)
{
    // Handle string case (first of above)
}
else if (/* the input is an object */)
{
    // Handle object case (second of above)
}
else
{
    // Handle invalid input format
}
Run Code Online (Sandbox Code Playgroud)

我有jQuery可供我使用.

更新:如答案中所述,如果输入是new String('some string'),typeof(input)将返回'object'.我该如何测试new String(''),所以我能以同样的方式处理''

javascript jquery

11
推荐指数
3
解决办法
2391
查看次数

检查Windsor是否已注册匹配的组件

在Castle Windsor场景中,我想检查我的容器是否已注册某个服务,并且基本上做了

if (container.HasComponentFor<IMyService>()) {
    // resolve service with container.Resolve<IMyService>()
    // then do cool stuff
}
Run Code Online (Sandbox Code Playgroud)

但当然container.HasComponentFor<IMyService>()不存在.有同等的吗?

castle-windsor

11
推荐指数
1
解决办法
3868
查看次数

`<Run />`在设计时没有数据绑定

我有一个继承ReactiveObjectreactiveui.net的视图模型,类似于

public sealed class TestViewModel : ReactiveObject
{
    public sealed class NestedViewModel
    {
        private string _property;
        public string VMProperty
        {
            get { return _property; }
            set { this.RaiseAndSetIfChanged(ref _property, value); }
        }

        private string _suffix;
        public string Suffic
        {
            get { return _suffix; }
            set { this.RaiseAndSetIfChanged(ref _suffix, value); }
        }

    }

    private NestedViewModel _nested = new NestedViewModel();
    public Nested
    {
        get { return _nested; }¨
        set { this.RaiseAndSetIfChanged(ref _nested, value); }
    }

#if DEBUG
    public …
Run Code Online (Sandbox Code Playgroud)

xaml reactiveui windows-phone-8.1

11
推荐指数
1
解决办法
207
查看次数

jQuery电子邮件验证要求

我正在使用jQuery.Validation插件进行客户端验证,其中包括验证电子邮件地址.现在我也想在服务器端验证(对于没有javascript的用户等).由于缺乏更好的想法,我开始使用正则表达式,但很快我就意识到我希望使用与jQuery方法相同的要求.或者,如果我能找到一些方法来覆盖我自己的jQuery验证要求,那就可以了.

有谁知道jQuery方法有什么要求?它是正则表达式验证,并且,如果是,表达式是什么?有没有办法覆盖它,即使我不知道它?

(我已经注意到可以预先形成远程验证,但如果可能的话,我想避免这种额外的网络流量......)

jquery email-validation client-side-validation

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