小编fea*_*net的帖子

禁用页面上的所有点击事件(javascript)

什么是通过javascript暂时禁用所有鼠标点击/拖动等事件的最简单方法?

我以为我可以document.onclick = function() { return false; };......等等,但那不行.

javascript

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

CLR如何知道盒装对象的类型?

当值类型被装箱时,它被放置在无类型的引用对象内.那么是什么导致无效的强制转换异常?

long l = 1;
object obj = (object)l;
double d = (double)obj;
Run Code Online (Sandbox Code Playgroud)

c# clr boxing type-conversion

14
推荐指数
3
解决办法
1095
查看次数

依赖可注射性是依赖注入的唯一理由吗?

据我所知,DI的优点是:

  • 减少依赖性
  • 更多可重用代码
  • 更可测试的代码
  • 更易读的代码

假设我有一个存储库OrderRepository,它充当通过Linq到Sql dbml生成的Order对象的存储库.我无法使我的订单存储库通用,因为它执行Linq Order实体和我自己的Order POCO域类之间的映射.

由于OrderRepository必然依赖于特定的Linq to Sql DataContext,因此无法真正说明DataContext的参数传递使代码可重用或以任何有意义的方式减少依赖性.

它还使代码更难阅读,以实例化我现在需要编写的存储库

new OrdersRepository(new MyLinqDataContext())

另外与存储库的主要目的相反,即抽象/隐藏DataContext的存在以消耗代码.

所以一般来说我认为这将是一个非常可怕的设计,但它会带来便利单元测试的好处.这有充分的理由吗?还是有第三种方式?我对听取意见非常感兴趣.

c# dependencies unit-testing design-patterns dependency-injection

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

我删除元素时是否需要在jQuery中分离事件

我有一个使用动态标签的UI,因此可以将内容加载到选项卡中,然后可以关闭标签并从页面中删除内容.

当我将内容加载到选项卡时,我使用jQuery将大量事件附加到元素.

当我从页面中删除这些元素时会发生什么?jQuery需要知道吗?

另外,如果我多次附加一个事件,这有关系吗?例如,在我的标签加载中,我可能使用类选择器附加事件$('.submitButton').click(...).但是我可能已经打开了其他选项卡,这些选项卡已经附加了submitButton事件.在这种情况下,我将重新附加相同的事件.这有什么问题吗?

jquery dom javascript-events dynamic-html

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

使用jQuery ajax/load提交数组参数

public ActionResult DoSomething(string[] arr, bool someBool, int someInt) { }

试图从jQuery调用上面的方法:

var test = [];
test.push('dog');
test.push('cat');

$container.load('MyController/DoSomething',
                { 'arr[]': test, 'someBool': true, 'someInt': 1 },
                function(response, status, xhr) {
                    // ...
                });
Run Code Online (Sandbox Code Playgroud)

数组参数为空,其他参数都很好.我究竟做错了什么?

Chrome开发人员工具会将提交的表单数据显示为

arr%5B%5D%5B%5D:dog
arr%5B%5D%5B%5D:cat
someBool:true
someInt:1
Run Code Online (Sandbox Code Playgroud)

不知道那里发生了什么,但看起来不对我

asp.net-mvc jquery load paramarray

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

仅强制从DataReader返回单行

我似乎在我的代码中写了这么多:

using (var reader = cmd.ExecuteReader())
{
    if (reader.Read())
    {
        result = new User((int)reader["UserId"], reader["UserName"].ToString());
    }

    if (reader.Read())
    {
        throw new DataException("multiple rows returned from query");
    }
}
Run Code Online (Sandbox Code Playgroud)

有一些内置的方法可以做到这一点我不知道吗?

.net c# ado.net datareader sqldatareader

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

模拟实现接口的枚举的行为

说我有一个类似的枚举:

enum OrderStatus
{
    AwaitingAuthorization,
    InProduction,
    AwaitingDespatch
}
Run Code Online (Sandbox Code Playgroud)

我还在我的枚举上创建了一个扩展方法来整理UI中的显示值,所以我有类似的东西:

public static string ToDisplayString(this OrderStatus status)
{
    switch (status)
    {
        case Status.AwaitingAuthorization:
            return "Awaiting Authorization";

        case Status.InProduction:
            return "Item in Production";

        ... etc
    }
}
Run Code Online (Sandbox Code Playgroud)

灵感来自这里的优秀帖子,我想SelectList用扩展方法将我的枚举绑定到一个:

public static SelectList ToSelectList<TEnum>(this TEnum enumObj)

但是,要在UI下拉列表中使用DisplayString值,我需要添加一个约束

: where TEnum has extension ToDisplayString

显然,除非有一些我不知道的聪明伎俩,否则这一切都不会对当前的方法起作用.

有没有人对我如何能够实现这样的事情有任何想法?

c# extension-methods enums interface

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

MVC映射到模型中的可空bool

使用包含该字段的视图模型:

public bool? IsDefault { get; set; }
Run Code Online (Sandbox Code Playgroud)

尝试在视图中映射时出错:

<%= Html.CheckBoxFor(model => model.IsDefault) %>
Run Code Online (Sandbox Code Playgroud)

无法隐式转换类型'bool?' 'bool'.存在显式转换(您是否错过了演员?)

我已经尝试过铸造,使用.Value并且都没有工作.

请注意我想要的行为是提交表单应该IsDefault在模型中设置为true或false.值null仅表示尚未填充模型.

c# data-binding nullable viewmodel asp.net-mvc-2

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

MVC Ajax.ActionLink找不到POST方法

我在我的控制器中声明了一个POST方法:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UpdateComments(int id, string comments)
{
    // ... 
}
Run Code Online (Sandbox Code Playgroud)

和我认为的ActionLink:

<%= Ajax.ActionLink("update", "UpdateComments", 
                        new { id = Model.Id, comments = "test" }, 
                        new AjaxOptions { 
                                HttpMethod="POST", 
                                OnFailure="alert('fail');", 
                                OnSuccess = "alert('success');" 
                            })%>
Run Code Online (Sandbox Code Playgroud)

尝试路由此请求时出现"未找到"错误.

如果我从控制器中的UpdateComments方法中删除POST限制,它可以正常工作.

我错过了什么?

c# routing asp.net-ajax actionlink asp.net-mvc-2

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

类与命名空间共享名称时出现C#错误

大会1

namespace Foo
{
    public class Foo { }
}
Run Code Online (Sandbox Code Playgroud)

大会2

using Foo;

public class Bar 
{ 
    Foo foo = new Foo();
}
Run Code Online (Sandbox Code Playgroud)

我今天发现上面给出了错误Type name expected but namespace name found.

我觉得这很令人惊讶.据我所知,您不能声明命名空间变量,也不能声明new()命名空间.Foo是一个类型,它正在解析器期望找到一个类型的地方使用,那么为什么解析器无法正确解析它?我忽略了哪种语言功能,这意味着编译器团队无法实现此功能?

c# compiler-construction parsing namespaces language-design

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