小编Dav*_*vid的帖子

asp.net mvc - 在Razor中提供备用行样式的最简单方法

给出以下Razor代码:

<tbody>
    @foreach (Profession profession in Model)
    {
        <tr>
            <td>@profession.Name</td>
            <td>@profession.PluralName</td>
            <td>@Html.ActionLink("Edit", "AddOrEdit", new { Id = profession.ProfessionID })</td>
        </tr>
    }
</tbody>
Run Code Online (Sandbox Code Playgroud)

提供某种替代行样式的最简单方法是什么?(即奇数行和偶数行的不同样式.)

我似乎无法添加任意C#来声明一个bool变量,该变量在foreach循环的每次迭代中被翻转以便tr为例如设置类名.

asp.net asp.net-mvc razor

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

moq:使用Setup()时,如何确定方法参数的相等性?

我正在使用该Setup()方法来设置模拟的接口实例的行为.

我正在设置的方法(让我们称之为DoSomething())接受一个类的实例(让我们调用该类Foo).

Foo foo = // Existing foo instance
Mock<IMyInterface> mock = new Mock<IMyInterface>();
mock.Setup(x => x.DoSomething(foo)).Returns(1);
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当我使用模拟时,它永远不会匹配设置,所以永远不会返回1.

有人可以帮忙吗?Moq如何确定提供给设置方法的参数是否相等?

c# unit-testing moq mocking

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

Linq:创建表达式的逻辑逆

我想创建一个方法来接受Expression<Func<T, bool>>并创建它的逻辑逆(即它将返回它将返回的false位置true,反之亦然.这比我想象的要困难得多.这是我所要做的:

public static Expression<Func<T, bool>> Not<T>(this Expression<Func<T, bool>> expression)
{
  return Expression.Lambda<Func<T, bool>>(Expression.Not(expression.Body));
}
Run Code Online (Sandbox Code Playgroud)

这编译很好但在调用时会抛出以下异常:

Test method Tests.Common.Unit.LinqPredicateBuilderTests.CanInverseAPredicate threw exception: 
System.ArgumentException: Incorrect number of parameters supplied for lambda declaration
Run Code Online (Sandbox Code Playgroud)

我不知道我在做什么.任何人都可以填补空白吗?

c# linq expression-trees

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

asp.net mvc - 如何告诉子操作忽略布局

我正在使用@Html.Action()在我的视图中渲染子动作.

_ViewStart.cshtml文件指定所有视图应使用如下特定布局:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
Run Code Online (Sandbox Code Playgroud)

问题是,该布局也应用于我的子操作,因此最终页面最终会有两个页眉和两个页脚.我该如何防止这种情况?

asp.net-mvc layout asp.net-mvc-3

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

asp.net mvc razor - 如何打破C#

如果我正在使用Razor中的视图,并且我目前处于代码块中并希望输出内容,我该如何做?为了说明我的问题,我在echo下面使用PHP:

<p>
  @if (Model.NumberOfWidgets > 100)
  {
    echo(Model.NumberOfWidgets);
  }
  else
  {
    echo("There are loads of widgets.");
  }
</p>
Run Code Online (Sandbox Code Playgroud)

所以我正在使用echo我想告诉Razor我不再做C#的地方,我的意思是这应该写入输出.我该怎么做呢?

编辑:我尝试过Response.Write,但是在页面顶部的视图标记之前写了!

asp.net-mvc razor

9
推荐指数
2
解决办法
5001
查看次数

ReSharper - 如何重新分析解决方案?

我刚刚从Subversion检查了一个解决方案,ReSharper告诉我它有191个文件有错误.事实上,它构建完美.

它的大多数问题似乎是"未知符号",它不识别名称空间或类名.纵观这些错误,至少它似乎与哪些错误不一致.

既然ReSharper完全错了,有没有办法可以告诉它重新开始分析,希望这次能做到正确吗?

resharper code-analysis

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

.NET中自动属性的用途

为什么是这样:

    public string Foo {get;set;}
Run Code Online (Sandbox Code Playgroud)

被认为比这更好:

    public string Foo;
Run Code Online (Sandbox Code Playgroud)

我不能为我的生活而努力.任何人都能解释一下吗?

谢谢

.net properties automatic-properties

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

ReSharper - 如何在代码清理中禁用垃圾文档头的生成

我们将ReSharper 6.0与StyleCop一起用于ReSharper.

虽然我们使用StyleCop规则,成员必须有文档头,但我们不希望ReSharper的代码清理工具为我们生成文档头,因为它们不可避免地会变成垃圾.糟糕的文档标题比没有标题更糟糕,因为它们的更新可能性不如首先添加.

我们尝试在ReSharper => Options => Tools => StyleCop中关闭"将文本插入文档和文件头"设置,但是当您重新启动visual studio时,它会自行重置.

有什么想法我们如何阻止代码清理为我们创建文档标题?

resharper stylecop code-documentation resharper-6.0

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

SVG元素似乎具有任意高度

我一直在努力学习一些SVG.但浏览器似乎陷入了一种正确的混乱状态.

采用以下HTML:

<html>
  <head></head>
  <body>
    <svg xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
      <rect height="100" width="100" style="stroke:#006600; fill: #00cc00"/>
    </svg>
    <p>Hello? Hellooooooooooooo?</p>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

查看这是任何现代浏览器,您将在矩形和以下HTML段落之间看到任意数量的空白.(IE9没有显示任何内容,但没有人会对此感到惊讶.)

Firefox(Firebug)没有给出元素svgrect元素的高度.它只是躲避并说'自动'.

Opera表示,svg它的高度为150px,并表示"自动" rect.

Chrome会提升并为两者提供高度.102px为rect(显然包括中风)和428px为svg.

我的期望是svg元素将是一个"薄"容器(即不增加其内容的尺寸),因此高度为102px.

任何人都知道应该采取什么样的正确行为以及如何解决这个问题?

html5 svg

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

缩小是破坏我的AngularJs代码

我正在使用Cassette,它使用Microsoft Ajax Minifier来缩小JS.此缩小器重命名变量,包括对Angular具有特殊含义的变量,例如$scope$http.所以Cassette打破了我的Angular代码!

我怎样才能防止这种情况发生?

作为参考,这是正在被破坏的Angular代码.该$scope$http功能参数都被重命名:

// <reference path="vendor/angular.js" />

angular.module('account-module', [])
    .controller('ForgottenPasswordController', function ($scope, $http) {

        $scope.email = {
            value: '',
            isValid: false,
            containerStyle: "unvalidated",
            validate: function () {
                var valid = isEmailAdressValid($scope.email.value);
                $scope.email.isValid = valid;
                $scope.email.containerStyle = valid ? "valid" : "invalid";
                return valid;
            },
            removeErrorMessage: function() {
                $scope.email.containerStyle = "unvalidated";
            }
        };

        $scope.display = {
            formClass: '',
            congratulationsClass: 'hide'
        };

        $scope.submit = function (event) {
            event.preventDefault();

            var emailValid = $scope.email.validate(); …
Run Code Online (Sandbox Code Playgroud)

minify angularjs cassette

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