小编Dar*_*rov的帖子

如何在asp.net mvc 3 razor视图中访问应用程序变量?

我在global.asa.cs中设置了一个Application变量:

    protected void Application_Start()
    {
        ...

        // load all application settings
        Application["LICENSE_NAME"] = "asdf";

    }
Run Code Online (Sandbox Code Playgroud)

然后尝试使用我的剃刀视图访问:

@Application["LICENSE_NAME"]
Run Code Online (Sandbox Code Playgroud)

并得到此错误:

Compiler Error Message: CS0103: The name 'Application' does not exist in the current context
Run Code Online (Sandbox Code Playgroud)

什么是正确的语法?

c# razor asp.net-mvc-3

27
推荐指数
4
解决办法
5万
查看次数

代码优先EF6的多租户

我们的组织需要拥有一个数据库,多租户
(通过表模式,而不是租户ID)架构.

这里有一篇很棒的文章来开始讨论这类事情:http: //romiller.com/2011/05/23/ef-4-1-multi-tenant-with-code-first/

在文章的中间,写道:

您会注意到(可能有点沮丧)我们需要编写代码来为每个实体配置表模式.不可否认,围绕此代码的魔术独角兽并不多......在EF的未来版本中,我们将能够用更清洁的自定义约定来替换它.

我们的目标是拥有一个最简单的方法,可以使用一个上下文类来连接到具有相同模型的多个模式.
(请注意,modelBuilder.HasDefaultSchema似乎不够,因为它仅适用于EF首次初始化上下文并运行OnModelCreating时)

EF5或EF6中是否存在上述清洁自定义约定?
或者是否有更清洁的方式来处理这个?

注意:我也在开发论坛上问了这个问题,因为它似乎更多地与EF的方向有关,但是想看看这里是否有人有替代方案.

注2:我不担心迁移,我们会分开处理.

c# entity-framework

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

可以请求从htmlhelper访问查询字符串

您好可以在HTMLHelper扩展方法中访问查询字符串.我们需要根据请求中的查询字符串进行不同的呈现.

c# asp.net-mvc html-helper

24
推荐指数
3
解决办法
7093
查看次数

如何在.NET中调用父线程上的函数?

我有一个.NET类库,其中包含一个类,该类具有执行一些冗长操作的方法.当客户端调用此方法时,它应该对新线程执行冗长的操作,以避免阻塞调用者.但是一旦方法完成,它应该在主线程上执行一些代码.在WinForms应用程序中,我可以使用System.Windows.Forms.Control.Invoke方法,但这不是我的情况.那么我怎样才能在C#中实现这一目标?

c# multithreading

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

忽略具有Entity Framework的重复键插入

我正在使用ASP.NET MVC4和Entity Framework Code First.我有一个名为"users"的表,主键为"UserId".此表可能有200,000多个条目.

我需要再插入50个用户.我可能会这样做

foreach(User user in NewUsers){
    context.Add(user);
}
dbcontext.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

问题是,这些新用户中的一个或多个可能已经存在于DB中.如果我添加它们然后尝试保存,则会抛出错误,并且不会添加任何有效的错误.我可以修改代码来执行此操作:

foreach(User user in NewUsers){
    if(dbcontext.Users.FirstOrDefault(u => u.UserId) == null)
    {
        dbcontext.Users.Add(user);
    }
}
dbcontext.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

哪个会奏效.问题是,它必须在200,000+条目表上运行50次查询.所以我的问题是,插入这些用户的效率最高的方法是什么,忽略任何重复?

c# entity-framework

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

Active Directory搜索的有效分页

什么是在.NET中进行Active Directory搜索分页的有效方法?在AD中搜索的方法有很多,但到目前为止我找不到如何有效地进行搜索.我希望能够指示SkipTake参数,并能够检索与结果中的搜索条件匹配的记录总数.

我试过在PrincipalSearcher课堂上搜索:

using (var ctx = new PrincipalContext(ContextType.Domain, "FABRIKAM", "DC=fabrikam,DC=com"))
using (var criteria = new UserPrincipal(ctx))
{
    criteria.SamAccountName = "*foo*";

    using (var searcher = new PrincipalSearcher(criteria))
    {
        ((DirectorySearcher)searcher.GetUnderlyingSearcher()).SizeLimit = 3;
        var results = searcher.FindAll();
        foreach (var found in results)
        {
            Console.WriteLine(found.Name);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我能够将搜索结果限制为3但是我无法获得与我的搜索条件(SamAccountName包含foo)相对应的记录总数.我也没有能够向搜索者指示跳过前50个记录.

我也试过使用System.DirectoryServices.DirectoryEntry,System.DirectoryServices.Protocols.SearchRequest但我唯一能做的就是指定页面大小.

那么获取客户端上的所有结果并在那里进行跳过和计数的唯一方法是什么?我真的希望有更有效的方法直接在域控制器上实现这一点.

.net c# active-directory

20
推荐指数
3
解决办法
7408
查看次数

使用jQuery选择表中的下一个<td>

我正在开发一个asp.net mvc 3应用程序.我正在使用数据库中的数据动态构建表.我有一个特例,当一行中的第三列/单元格是下拉列表时:

<select name="YesNoNotApplicable" class="YesNoNotApplicable">
                            <option value="1">Yes</option>
                            <option value="2">No</option>
                            <option value="3">Not Applicable</option>
                        </select>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,第四列/单元格保持为空,并且如果用户在第四单元格中选择3(不适用),则应该显示文本框,其中用户可以写入附加信息.我对JS和jQuery知之甚少,但是我发现如何从下拉列表中获取所选值:

$(document).ready(function () {
        $('.YesNoNotApplicable').change(function () {
            alert($('.YesNoNotApplicable').val());
        });
    });
Run Code Online (Sandbox Code Playgroud)

但现在我需要检查警报我是否需要检查值是否为3(这是我自己可以自己去的)以及显示/隐藏或追加/删除下一个单元格中的文本框,或者我们是否在DOM中进行讨论.

那么我如何导航到class = YesNoNotApplicable旁边的那个,以及处理这个文本框的最佳方法是什么 - 把它放在我正在创建表格然后显示/隐藏它或处理它的时候在运行时使用它并追加/删除它,我怎么能这样做?

html jquery

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

MVC Html Extension返回字符串而不是html标记?

如果我有这样的扩展名:

 public static string ImageLink(this HtmlHelper htmlHelper,
                                      string imgSrc, 
                                      string alt, 
                                      string actionName,
                                      string controllerName, 
                                      object routeValues, 
                                      object htmlAttributes, 
                                      object imgHtmlAttributes)
  {

     return @"<img src=""../../Content/images/english.png"" /> ";
  }
Run Code Online (Sandbox Code Playgroud)

我在这样的局部视图中使用它:

@Html.ImageLink("../../Content/images/english.png","English", "ChangeCulture", "Account", new { lang = "en", returnUrl = this.Request.RawUrl }, null,null)
Run Code Online (Sandbox Code Playgroud)

我有这样的输出: 在此输入图像描述

知道为什么吗?

c# asp.net razor asp.net-mvc-3

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

ServiceStack FluentValidation中的自定义响应DTO

我正在评估ServiceStack中的FluentValidation以处理请求DTO的自动验证:

Plugins.Add(new ValidationFeature());
container.RegisterValidators(typeof(MyValidator).Assembly);
Run Code Online (Sandbox Code Playgroud)

通过序列化ErrorResponseDTO 将错误返回给客户端,可能如下所示:

{
    "ErrorCode": "GreaterThan",
    "Message": "'Age' must be greater than '0'.",
    "Errors": [
        {
            "ErrorCode": "GreaterThan",
            "FieldName": "Age",
            "Message": "'Age' must be greater than '0'."
        },
        {
            "ErrorCode": "NotEmpty",
            "FieldName": "Company",
            "Message": "'Company' should not be empty."
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以使用不同的响应DTO返回错误.例如:

{
    "code": "123",
    "error": "'Age' must be greater than '0'."
}
Run Code Online (Sandbox Code Playgroud)

我知道可以在服务中明确使用验证器:

public MyService : Service
{
    private readonly IValidator<MyRequestDto> validator;
    public MyService(IValidator<MyRequestDto> validator)
    {
        this.validator = validator;
    }

    public …
Run Code Online (Sandbox Code Playgroud)

c# fluentvalidation servicestack

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

Java退格逃脱

我刚刚测试了退格转义,如下所示:

System.out.println("Hello\b");
Run Code Online (Sandbox Code Playgroud)

我希望得到输出:地狱
但它是:"你好"的方块

有谁知道java如何处理这个?

java escaping

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