小编Nic*_*ick的帖子

将MVC QueryString转换为动态对象

有没有办法用Query String参数填充Dynamic对象?

这样我的QS中的搜索参数可以变化而不会将它们直接绑定到容器对象或者必须更改搜索方法的签名.

例如

入站网址:www.test.com/Home/Search?name = john&product = car&type = open&type = all

public ActionResult Search()
{
    dynamic searchParams = // **something magic here**

    var model = getResults(searchParams);
    return View(model);
}
Run Code Online (Sandbox Code Playgroud)

填充的searchParams对象应如下所示:

{
    name = "john",
    product = "car",
    type = { "open", "all" }
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c# asp.net-mvc

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

自定义错误适用于HttpCode 403但不适用于500?

我正在我的MVC3应用程序中实现自定义错误,它在web.config中打开:

<customErrors mode="On">
  <error statusCode="403" redirect="/Errors/Http403" />
  <error statusCode="500" redirect="/Errors/Http500" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)

我的控制器非常简单,具有相应的正确命名视图:

public class ErrorsController : Controller
{
    public ActionResult Http403()
    {
        return View("Http403");
    }

    public ActionResult Http500()
    {
        return View("Http500");
    }
}
Run Code Online (Sandbox Code Playgroud)

为了测试,我在另一个控制器中抛出异常:

public class ThrowingController : Controller
{
    public ActionResult NotAuthorised()
    {
        throw new HttpException(403, "");
    }

    public ActionResult ServerError()
    {
        throw new HttpException(500, "");
    }
}
Run Code Online (Sandbox Code Playgroud)

403工作 - 我被重定向到我的自定义"/错误/ Http403".

500不起作用 - 我被重定向到共享文件夹中的默认错误页面.

有任何想法吗?

custom-errors asp.net-mvc-3

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

Selenium EventFiringWebDriver 导航事件

我正在使用 Selenium Web 驱动程序,我想监听浏览器中发生的事件。例如,当页面上的某些 javascript 导致 url 使用以下命令更改时window.location = "...";

我有一个监听器附加到Navigated我的事件上EventFiringWebDriver。但是当浏览器的 url 更改时,此操作将无法触发。我由此推断 Selenium 不能以这种方式监听事件?

是否有正确的方法来附加到浏览器或来自浏览器的 DOM 事件?

c# selenium selenium-webdriver

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

如何在 Windows 上调用 .bat 文件并在一行中设置本地环境变量?

我正在 Windows 上调用 .bat 文件。.bat 文件依赖于某些环境变量的存在。

如何在调用 .bat 文件的同时设置这些环境变量,以便环境变量是 .bat 文件的本地变量,并且不会作为全局变量传播。

我理想地想在一行中完成此操作......

windows batch-file environment-variables

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

将diffmerge设置为可视Git difftool不起作用

我试图在Git中将DiffMerge配置为我的difftool,但没有运气.这是我的.gitconfig文件的一个重要部分(未显示的其他设置仅适用于用户).

[diff]
        tool = diffmerge
[difftool "diffmerge"]
        cmd = \"C:\\Program Files\\SourceGear\\Common\\DiffMerge\\sgdm.exe\" \"$LOCAL\" \"$REMOTE\"
Run Code Online (Sandbox Code Playgroud)

每当我git difftool从powershell命令行调用时,冲突都会直接显示在powershell界面的下方,而不是按预期在diffmerge中显示.我知道git会选择设置,因为当我检查全局配置时,我会从配置文件中获取设置:

git config --global --get-all difftool.diffmerge.cmd
"C:\Program Files\SourceGear\Common\DiffMerge\sgdm.exe" "$LOCAL" "$REMOTE"
Run Code Online (Sandbox Code Playgroud)

我正在运行powershell而不是git bash.这是因为我为windows安装了github,它提供了powershell作为git的shell,所以我不需要安装bash(还).Git版本是1.7.11.msysgit.0.

git powershell diffmerge git-config github-for-windows

3
推荐指数
1
解决办法
3625
查看次数

为什么从F#调用Moq抛出异常?

我认为它与使用times论证有关Verify().

open NUnit.Framework
open Moq

type IService = abstract member DoStuff : unit -> unit

[<Test>]
let ``Why does this throw an exception?``() =
    let mockService = Mock<IService>()
    mockService.Verify(fun s -> s.DoStuff(), Times.Never())
Run Code Online (Sandbox Code Playgroud)

异常消息:

System.ArgumentException:类型'System.Void'的表达式不能用于'Microsoft.FSharp.Core.Unit'类型的构造函数参数

f# moq

3
推荐指数
1
解决办法
223
查看次数

如何让 NUnit Console Runner 打印测试名称

NUnit 控制台运行程序仅在测试导致打印某些内容时才打印到控制台。

有没有办法让它打印每个测试名称?类似于摩卡的东西,如下所示。

摩卡测试

nunit

3
推荐指数
1
解决办法
555
查看次数

Func NUnit Equality Comparison

平等比较如何适用于Func?我已将问题的复杂性降低到这些单元测试:

[Test]
public void Will_Pass()
{
    Func<string> func = () => "key";
    Assert.That(func, Is.EqualTo(func));
}

[Test]
public void Will_Fail()
{
    Func<string> funcA = () => "key";
    Func<string> funcB = () => "key";
    Assert.That(funcA, Is.EqualTo(funcB));
}
Run Code Online (Sandbox Code Playgroud)

我需要测试 - 并成功断言 - a的一个实例Func等于另一个实例.所以我基本上需要一种方法来使失败测试通过.

有没有办法在不创建自定义类型和覆盖的情况下执行此操作Equals()

c# nunit equality func

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

如何使用流体断言.ShouldBeNull()

我正在尝试使用 Fluent Assertions ShouldBeNull() 扩展方法来断言我的实例确实为 null。

Result.ShouldBeNull();
Run Code Online (Sandbox Code Playgroud)

显然,这会引发异常,因为我无法在空实例上调用扩展。

System.NullReferenceException
Run Code Online (Sandbox Code Playgroud)

如何正确使用 Fluent Assertions 来做出此断言?

c# tdd nullreferenceexception fluent-assertions

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

使用嵌套for循环将Lambda转换为Linq语句

有没有办法重写GetTransformedCollection下面的方法,以便它使用Linq语句而不是表达式?我目前正试图绕过"一个带有语句体的lambda表达式无法转换为表达式树"错误.

public class Obj1
{
    public int Id { get; set; }
    public string[] Names { get; set; }
    public string[] Tags { get; set; }
}

public class EntCollections
{
    private List<Obj1> _results;

    [SetUp]
    public void SetUp()
    {
        _results = new List<Obj1>
        {
            new Obj1 {Id = 1, Names = new[] {"n1"}, Tags = new[] {"abc", "def"}},
            new Obj1 {Id = 2, Names = new[] {"n2", "n3"}, Tags = new[] {"ghi"}},
            new Obj1 {Id = 3, Names …
Run Code Online (Sandbox Code Playgroud)

c# linq lambda

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

Http在F#中发布流而不读入字节数组

使用C#,我可以使用System.Net.Http库直接发布流,如下所示:

private async Task UploadFileAsync(Uri uri, string filename)
{
    using (var stream = File.OpenRead(filename))
    using (var client = new HttpClient())
    {
        await client.PostAsync(uri, new StreamContent(stream));
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在功能上惯用的方式在F#中做到这一点?

FSharp.Data.Http.Request允许您发布二进制数据,但需要一个字节数组来执行此操作,这意味着将流读取到内存中.我希望避免这种情况,因为我发布了> 20Mb.

f# c#-to-f# dotnet-httpclient f#-data

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

.net SDK 中 AWS 客户端的推荐寿命是多少?

例如,AmazonSQSClient在 Web 或其他多线程应用程序中使用 :

在任何时刻应该存在多少个实例?

我应该处理它并创建一个新的吗?

我是否需要防止创建多个实例?

.net amazon-sqs amazon-web-services aws-sdk

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

本地分支从Origin分支分歧但我不想合并/ fastforward

几个提交已被推送到原始分支.这些提交包含导致问题的代码.为了解决问题,我git reset --hard <sha>在问题开始之前做了提交.

我已经修复了问题并在本地提交.现在我想推送到Origin但我不能,因为我的分支是由5个提交(导致问题)和1提交(修复提交)提前.即.分支不同.

我不想合并来自Origin的任何更改.如何将Origin的头部设置为我的本地提交的头部,而不将合并提交到我的本地分支?

谢谢!

git

0
推荐指数
1
解决办法
583
查看次数