小编Eri*_*ric的帖子

MVC 4 List Model Binding如何工作?

如果我希望表单中的一组输入绑定到ListMVC 4中,我知道以下input name属性的命名约定将起作用:

<input name="[0].Id" type="text" />
<input name="[1].Id" type="text" />
<input name="[2].Id" type="text" />
Run Code Online (Sandbox Code Playgroud)

但我很好奇模型粘合剂是多么宽容.例如,以下内容如何:

<input name="[0].Id" type="text" />
<input name="[3].Id" type="text" />
<input name="[8].Id" type="text" />
Run Code Online (Sandbox Code Playgroud)

模型绑定器如何处理这个?它会List与null 结合长度为9吗?或者它仍然会绑定到List3的长度?还是会完全窒息?

为什么我在乎

我想实现一个动态表单,用户可以在其中向表单添加行,也可以从表单中删除行.因此,如果我用户从总共8行中删除第2行,我想知道是否需要重新编号所有后续输入.

.net c# asp.net-mvc model-binding asp.net-mvc-4

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

为什么Lock'ing在同一个对象上导致死锁?

可能重复:
C#中的重入锁定

如果我写这样的代码:

class Program {
    static void Main(string[] args) {
        Foo();
        Console.ReadLine();
    }

    static void Foo() {
        lock(_lock) {
            Console.WriteLine("Foo");
            Bar();
        }
    }

    static void Bar() {
        lock(_lock) {
            Console.WriteLine("Bar");
        }
    }

    private static readonly object _lock = new object();
}
Run Code Online (Sandbox Code Playgroud)

我得到输出:

Foo
Bar
Run Code Online (Sandbox Code Playgroud)

我预计这会陷入僵局,因为Foo获得了一个锁,然后等待Bar获得锁.但这不会发生.

锁定机制是否只允许这个,因为代码是在同一个线程上执行的?

.net c# deadlock locking

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

C#中哪些操作是原子的?

是否有系统的方法来了解C#中的操作是否是原子操作?或者是否有任何一般指导方针或经验法则?

.net c# multithreading atomic

51
推荐指数
3
解决办法
3万
查看次数

在.NET Regex中需要转义哪些字符?

在.NET Regex模式中,需要转义哪些特殊字符才能按字面意思使用?

.net regex escaping

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

在git svn clone中使用--no-metadata有什么好处吗?

我正在使用一个从SVN存储库到Git存储库的单向转换git svn clone.大多数示例使用--no-metadata标志执行此操作- 使用此标志是否有优势?

据我所知,该标志删除了SVN修订号.我可以想一想为什么保持这些可能有用的原因(例如回顾bug跟踪软件中提到的特定提交).

使用旗帜的理由什么--no-metadata?除了打破所有关系的感觉之外还有什么好处吗?

svn git version-control git-svn

21
推荐指数
2
解决办法
9685
查看次数

为什么C#volatile没有保护写 - 读重新排序?

根据这本在线书籍,volatileC#中的关键字不能防止重新排序Write操作,然后是Read操作.它给出了这样的例子,其中两个ab可最终被设置为0,尽管xyvolatile:

class IfYouThinkYouUnderstandVolatile
{
  volatile int x, y;

  void Test1()        // Executed on one thread
  {
    x = 1;            // Volatile write (release-fence)
    int a = y;        // Volatile read (acquire-fence)
    ...
  }

  void Test2()        // Executed on another thread
  {
    y = 1;            // Volatile write (release-fence)
    int b = x;        // Volatile read (acquire-fence)
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

这似乎符合10.5.3规范中的内容:

读取volatile字段称为volatile读取.易失性读取具有"获取语义"; 也就是说,保证在指令序列之后发生的任何内存引用之前发生.

写入易失性字段称为易失性写入.易失性写入具有"释放语义"; 也就是说,保证在指令序列中的写指令之前的任何存储器引用之后发生. …

.net c# multithreading volatile

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

browserify如何处理循环依赖?

我正在考虑将一个基于浏览器的大型代码库移到CommonJS(它是一个用TypeScript编写的AngularJS 1.x应用程序).该应用程序具有循环依赖性,因此我认为RequireJS是不可能的.

Browserify如何处理循环依赖?是否存在不同类型的循环依赖关系?或者使用CommonJS/Browserify处理循环依赖的任何提示?

circular-dependency commonjs browserify

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

如何从ChangeTracker获取原始实体

有没有办法让原始实体本身ChangeTracker(而不仅仅是原始值)?

如果StateModified,那么我想我可以这样做:

// Get the DbEntityEntry from the DbContext.ChangeTracker...

// Store the current values
var currentValues = entry.CurrentValues.Clone();

// Set to the original values
entry.CurrentValues.SetValues(entry.OriginalValues.Clone());

// Now we have the original entity
Foo entity = (Foo)entry.Entity;

// Do something with it...

// Restore the current values
entry.CurrentValues.SetValues(currentValues);
Run Code Online (Sandbox Code Playgroud)

但这似乎不太好,而且我确定它有问题,我不知道......有更好的方法吗?

我正在使用Entity Framework 6.

.net c# entity-framework entity-framework-6

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

EntityFramework Code First对属性getter/setter做了什么?

在使用Code First时,EntityFramework到底映射具有自定义getter和setter的属性到底是做什么的?

是否只是在序列化时调用属性的getter,在反序列化时调用setter?所以我可以做一些傻事......

public class Foo {

    public DateTime TimeAccessed {
        get {
            return DateTime.Now;
        }
        set {
            TimeDeserialized = DateTime.Now;
        }
    }

    [NotMapped]
    public DateTime TimeDeserialized { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

注意我对使用上述代码或类似内容没有实际兴趣...它仅用于说明目的.

此外,在使用Code First映射属性时,是否需要执行所有getter和setter public

.net c# entity-framework ef-code-first

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

如何最好地与SmartGit共享代码

我有许多共享一些共同代码的独立项目.在Git中实现这一目标的最佳实践是什么,特别是SmartGit?

  • 把所有东西放在一个巨大的存储

  • 拥有每个项目的存储库和共享代码的存储库,并使用Git子模块.

  • 拥有每个项目的存储库和共享代码的存储库,并使用Git子树.任何人都可以告诉我SmartGit是否支持它,以及如何实现它?

这些方法有哪些潜在的缺陷,以及SmartGit的最佳实践是什么?

git version-control smartgit

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