小编Dan*_*son的帖子

在Notepad ++中使用HTMLTidy缩进空格

我如何使它不是用2个空格的倍数缩进我的元素(当选择格式化而不包装时),HTMLTidy用多个制表符缩进它们(长4个空格但大小只有1个字节)?

html tabs tidy notepad++ indentation

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

如何使用JQueryMobile为iphone/ipad上传文件?

我刚开始看JqueryMobile并想知道以下是否可行?

我希望能够选择一个文件(类似于html),然后显示某种对话框,允许我浏览到"文件夹"并选择文件.然后由我发送某种AJAX命令将其上传到服务器(我使用的是Asp.net MVC 2)

由于我无法访问iPhone或iPad,我被告知我只能访问文档文件夹.

JD

asp.net-mvc jquery ios jquery-mobile

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

在C#中解压缩子目录和文件

我正在尝试在我目前正在处理的项目中实现解压缩功能,但问题是我在许可方面有一些限制,我需要远离GPL类似的许可证,因为该项目是封闭源代码.

这意味着我不能再使用SharpZipLib ..所以我转移到.Net库目前我正在尝试使用ZipArchive库.

问题是它没有提取目录/子目录,所以如果我有内部有file.txt的blabla.zip和/folder/file2.txt,整个东西将被提取到file.txt和file2.txt,所以它忽略子目录.

我正在使用MSDN网站上的示例.看起来像是这样的:

using (ZipArchive archive = ZipFile.OpenRead(zipPath))
{
  foreach (ZipArchiveEntry entry in archive.Entries)
  {
    entry.ExtractToFile(Path.Combine(extractPath, entry.FullName));
  } 
}
Run Code Online (Sandbox Code Playgroud)

不知道怎么解决这个问题?

.net c# compression zip

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

在ASP.NET Web API中立即返回HTTP响应

我正在开发一个WebAPI2项目进行一些数据收集,我试图弄清楚如何减少API方法的响应时间.

我有一个JavaScript函数,可以将信息发布到我的api.我的API接收此信息,将其插入数据库,然后返回HTTP Accepted.

假设数据处理完成的等待时间为5秒

// POST api/<controller>
public HttpResponseMessage Post([FromBody]string value)
{
  //This represents 5000 milliseconds of work
  System.Threading.Thread.Sleep(5000);

  return new HttpResponseMessage(HttpStatusCode.Accepted);

}
Run Code Online (Sandbox Code Playgroud)

这意味着,当我的JavaScript函数调用Post方法时,它会等待5秒钟的响应.

有没有办法可以立即返回HTTP Accepted的响应,然后继续处理我的数据?

从lilo.jacob更新解决方案

好的,我已经使用下面的线程解决方案更新了我的方法.这是新代码

// POST api/<controller>
public HttpResponseMessage Post([FromBody]string value)
{
  new System.Threading.Tasks.Task(() =>
    {
      //This represents 5000 milliseconds of work
      System.Threading.Thread.Sleep(5000);
    }).Start();

  return new HttpResponseMessage(HttpStatusCode.Accepted);
}
Run Code Online (Sandbox Code Playgroud)

几乎立即返回响应,这正是我所寻找的.以下是Fiddler的一些结果,显示了响应时间的变化 在Fiddler的回复时间

第一个响应显示启动时WebAPI的延迟,请求4,5和7正在使用线程并在彼此之后立即触发.响应11显示相同的请求而未启用线程,请注意5秒延迟.

非常酷,干净,精益解决问题的方法.

c# xmlhttprequest asp.net-web-api

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

如何在C#中使用Nest获取所有索引并过滤索引

我需要列出 Elasticsearch 中的所有索引和类型。

基本上我_client.stats().Indices用来获取索引,并使用foreach排除的索引列表进行过滤,如下所示:

public Dictionary<string, Stats> AllIndexes()
{
    _client = new ElasticClient(setting);
    var result = _client.Stats();
    var allIndex = result.Indices;
    var excludedIndexList = ExcludedIndexList();
    foreach (var index in excludedIndexList)
    {
        if (allIndex.ContainsKey(index)) allIndex.Remove(index);
    }

    return allIndex;
}
Run Code Online (Sandbox Code Playgroud)

这是从 Elasticsearch 列出所有索引的正确方法还是有更好的方法?

.net c# elasticsearch nest

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

类型“System.Int16”的对象无法转换为类型“System.Nullable`1[System.Int32]

我有一个方法可以从数据读取器的数据生成类类型列表。

if (datareader != null && datareader .HasRows)
{
  Dictionary<string, PropertyInfo> pDict= GetPropertyDictionary<T>();
  var fields = GetFieldNames(datareader );
  while (datareader .Read())
  {
    T myobj= new T();
    for (int index = 0; index < fields.Count; index++)
    {                        
      if (pDict.TryGetValue(fields[index], out PropertyInfo info))
      {
        var val1 = datareader .GetValue(index);                                
        info.SetValue(myobj, (val1 == DBNull.Value) ? null : val1, null);
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我有类属性,其中一些可以为空。

public string StudentName{ get; set; }
public decimal? percentage{ get; set; }
public int? StudentNumber{ get; set; }
Run Code Online (Sandbox Code Playgroud)

代码适用于除 …

c# nullable datareader system.reflection

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

如何阻止 Chromium Edge 在单页上使用 IE 模式

我无权更改为 Intranet 站点启用 IE 模式的公司策略。

我们团队使用的一个页面,无法使用IE。在IE模式下使用Edge,页面无法工作。

页面中内置了 3 分钟刷新,标签如下:

<meta http-equiv="refresh" content="180" />
Run Code Online (Sandbox Code Playgroud)

第一次刷新后,它切换回正常的 Chromium Edge 模式,一切正常。我如何强制它每次都加载到 Chromium Edge 中?

我可以修复该页面以使其在 IE 中工作,但这似乎是一种巨大的浪费。

microsoft-edge

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

自动生成强类型的AppSettings类

这是第一个问题:

这可能吗?我从Joe Wrobel的工作中获取灵感(减少了被遗忘的Codeplex项目).在这里,您完成了为提供程序创建配置文件的工作,并为其创建强类型的工作,有效地为Profile类创建了一个Facade.

现在是背景故事!

我真的不喜欢魔法弦.它们非常糟糕,在更新应用程序时可能会导致严重的问题.在PHP和ColdFusion等语言中工作之后,我知道很容易将它们放入应用程序并忘记它们,直到您需要更改它们.然后你必须追捕它们的每一个变化并相应地改变它们.

如果您遵循"开箱即用"的应用程序模板,.NET实际上并没有那么好.很多例子都使用web.config中的appsetting来存储各种设置.这确实是一个存储的好地方,非常适合大多数应用程序.然而,当您开始直接调用这些问题时,问题就开始出现了 - 例如ConfigurationManager.AppSettings["MyAppSetting"].然后,当你回到使用魔术字符串时,你并没有比PHP用户更好.

这就是外墙进来的地方.外墙提供了一种在一个地方从魔术字符串创建强类型对象的方法,并让开发人员从应用程序的其余部分引用它.

现在,我没有使用web.config来包含我的appsettings,而是使用数据库来保存它们.在应用程序启动时,将检索名称/值组合,然后将其顺序添加到ConfigurationManager.AppSettingsvia Set.没什么大不了的(除了我之前的问题!).

这个"应用程序外观"可以通过我的数据层,服务层和表示层访问,并保存应用程序模式,使用yada yada yada的服务端点,并限制必须寻找许多魔法字符串,最多两个魔法strings - facade中的一个(名称),以及创建点中的另一个(名称和值)(对我来说是db).

这个门面类最终会变得非常大,我最终会厌倦不得不更新它们.

所以我想要做的是拥有一个ApplicationFacade类,每次构建完成后都会自动生成.现在又回到了开始......这可能吗?

c# asp.net t4 facade appsettings

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

更正301重定向的控制器代码

我正在从静态站点设计一个新的动态站点.我的路线全部排序但我对我的Action方法有疑问.

下面是代码,但是当测试并查看Firebug报告的标头时,如果我取出Response.End它是302重定向我假设因为我设置了301然后调用另一个动作使它成为302,但如果我放入Response.End我得到301.

我猜测添加Response.RedirectLocation实际上正在进行301重定向,所以我是否将我的返回值更改为EmptyResult或null,即使该行代码永远不会被执行,因此应用程序编译?

public ActionResult MoveOld(string id)
{
    string pagename = String.Empty;

    if(id == "2")
    {
      pagename = WebPage.SingleOrDefault(x => x.ID == 5).URL;
    }

    Response.StatusCode = 301;
    Response.StatusDescription = "301 Moved Permanently";
    Response.RedirectLocation = pagename;
    Response.End();

    return RedirectToAction("Details", new { pageName = pagename });
}
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc asp.net-mvc-routing

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

调用泛型扩展方法而不指定任意类型

这是我用于测试Type扩展方法的类的片段:

class Something
{
  [StringLength(100, MinimumLength = 1, ErrorMessage = "Must have between 1 and 100 characters")]
  public string SomePublicString { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有以下扩展方法:

public static class TypeExtensions
{
  public static TAttributeType GetCustomAttribute<T, TAttributeType, TProperty>(this T value, Expression<Func<T, TProperty>> propertyLambda, bool inherit = false)
  {
    var type = typeof(T);
    var member = (MemberExpression)propertyLambda.Body;
    var propertyInfo = (PropertyInfo)member.Member;
    var customAttributes = propertyInfo.GetCustomAttributes(typeof(TAttributeType), inherit);

    return customAttributes.OfType<TAttributeType>().FirstOrDefault();
  }
}
Run Code Online (Sandbox Code Playgroud)

用于单元测试:

1:  var something = new Something();
2:  var actual = something.GetCustomAttribute<Something, …
Run Code Online (Sandbox Code Playgroud)

c# lambda extension-methods

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