小编Evi*_*lDr的帖子

用Javascript/JQuery中的<a href>标签替换[url]标签

我正在尝试使用JQuery来实现以下逻辑:

  • 替换的字符串值[url="http://www.google.com"]Google[/url]<a href="http://www.google.com">Google</a>

请参阅下面的HTML页面.问题是,按下按钮时,只会粘贴原始文本,并且不会进行RegEx替换.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Test</title>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script type="text/javascript">
        //<![CDATA[
        function processJs() {
            var oldtext = $("#oldtext").html();
            var newtext = oldtext.replace('\[url\s?=\s?"?(.*?)"?\](.*?)\[\/url\]', '<a href="$1">$2</a>');
            $('#mydiv').html(newtext);
        }
        //]]>
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div id="oldtext">
            Try this funky new search engine:
            [url="http://www.google.com"]Google[/url]
            Or this older one from back in the day:
            [url="http://uk.altavista.com"]AltaVista[/url]
        </div>
        <div>
            <input type="button" id="btn" value="Replace" onclick="processJs(); return false;" />
        </div>
        <div id="mydiv" style="background-color: #eeeeee; border: 2px inset #aaaaaa"> …
Run Code Online (Sandbox Code Playgroud)

javascript regex jquery

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

使用 tar.exe 创建后无法打开 Zip 文件

我尝试在 Windows 10 命令提示符中使用 Tar.exe 将整个文件夹及其子目录压缩到 .zip 文件中。

在阅读了此处和此在线帮助上的不同答案后,到目前为止我有以下内容:

tar.exe -cvzf "C:\Users\Me\Desktop\Output.zip" "C:\Users\Me\Desktop\MyFolder"
Run Code Online (Sandbox Code Playgroud)

这似乎可以在命令提示符下运行(没有错误并且列出所有文件)。.zip 文件是在桌面上创建的,但是当我尝试双击它打开它时,出现以下错误:

Windows 无法打开该文件夹。

压缩文件夹“C:\Users\Me\Desktop\MyFolder”无效。

我将文件拖到记事本中,看看是否有任何标题可以揭示问题,但它看起来像是某种东方事件......!

在此输入图像描述

谁能告诉我我在这里做错了什么吗?

tar

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

无法解除将mousemove与pageX和pageY绑定

var mouseStillDown = false;
$(".grab").mousedown(function(e) {
        mouseStillDown=true;
        getLocation();
    }).mouseup(function(e) {
        mouseStillDown = false;
        getLocation();
    });

if(mouseStillDown) {
$("#image_360").bind("mousemove", function(e){
     $("#location").text("e.pageX: " + e.pageX + ", e.pageY: " + e.pageY);
});
}

else if(!mouseStillDown) {
    $("#image_360").unbind("mousemove", function(e){
     $("#location").text("removed location");
    });
}
Run Code Online (Sandbox Code Playgroud)

即使我没有绑定的mousemove,我仍然会在div上看到带有pageX和pageY的文本 id=location

jquery mousemove mouseup mousedown

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

表变量列中的nvarchar(max)与nvarchar(n)

在最终向用户呈现结果集之前,我对表变量做了很多工作.例如,我可能从许多不同的表中拉入一大堆列,如下所示:

DECLARE @tmp TABLE
(
ID int,
username nvarchar(50),  -- data taken from tbl_Users
site nvarchar(50),      -- data taken from tbl_Sites
region nvarchar(100),   -- data taken from tbl_Regions
currency nvarchar(5)    -- data taken from tbl_Currencies
)
Run Code Online (Sandbox Code Playgroud)

我花了很多时间浏览对象资源管理器以确保列的数据长度正确(与原始表匹配).有时,如果我更改表模式但不更新所有过程,我可能会遇到截断错误.

采取懒惰的做法是否有任何问题:

DECLARE @tmp TABLE
(
ID int,
username nvarchar(max),
site nvarchar(max),
region nvarchar(max),
currency nvarchar(max)
)
Run Code Online (Sandbox Code Playgroud)

nvarchar(max)实际上是否会消耗更多内存或根据数据大小分配内存?还有其他陷阱吗?

请注意,我知道跳转到定义的第三方工具,但这不是我要求的.

UPDATE

重复的问题有价值,但问题不一样恕我直言.副本围绕实际表的设计而不是表变量.但是,答案中有一些优点,即:

  • nvarchar(max)vs nvarchar(8000)在资源使用方面没有差异,直到8000+数据长度
  • 业务逻辑层依赖于结构和有意义的数据,因此指定与原始值相称的列大小可提供值

从这个意义上讲,似乎可以nvarchar(max)在表变量中使用而不是nvarchar(n),但在某些环境中它具有可靠性和性能风险.如果你认为这应该被删除然后公平(但请停止争论我欣赏所有输入!)

t-sql sql-server sql-server-2012

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

查看自分支(TFS)以来更改的所有文件

使用VS2013和/或VisualStudio.com,是否可以在创建分支("Main"分支到"Dev001")后查看"Main"和"Dev001"之间不同的所有文件的列表?例如,我想查看当前分支中已修改/创建的所有文件,因为它已分支.

我最接近的是右键单击分支,选择" 查看历史记录",然后单击每个变更集以在" 变更集详细信息"面板中查看文件,但是,有很多变更集需要很长时间.

请注意我没有使用Git.

tfs visual-studio-2013 tfs2013

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

在WebDeploy中使用哪个用户帐户

我已经在IIS服务器上安装了WebDeploy,以允许通过TFS发布站点。在为特定站点配置Web部署时,应使用哪个用户帐户?

IIS教程中,我们被告知要使用非管理员Windows用户,但是ASP.NET教程似乎显示了一个普通用户。默认情况下,Web Deploy选择服务器管理员,这肯定不是很好:

Web部署用户

我们应该创建一个新帐户并在TFS中指定用户名和密码吗?一些博客建议这样做,并将密码设置为永不过期。如果是这样,需要为我们的新用户在哪些目录上设置哪些权限?

我看到还有一个在安装过程中创建的WDeployAdmin用户。这相关吗?

asp.net iis asp.net-mvc tfs windows-server-2012

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

使用自定义AuthorizeAttribute生成返回URL

我有自定义授权属性:

using System;
using System.Web.Mvc;
using System.Web.Routing;
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class MyAuthorizeAttribute : AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        if (!filterContext.HttpContext.Request.IsAuthenticated)
        {
            filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Login", action = "Login" }));
        }
        else
        {
            base.HandleUnauthorizedRequest(filterContext);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

...我用来装饰某些控制器:

[MyAuthorizeAttribute(Roles = "Superman, Batman, Spiderman")]
public class SuperHeroController : Controller
{
    // ....
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释如何修改授权代码,以便如果授权失败,登录URL包括ReturnUrl(当前控制器/方法的URL)?

这基本上是试图模仿Web表单ReturnUrl逻辑,但是以一种聪明的方式,我不必手动使用字符串作为URL.

asp.net asp.net-mvc asp.net-mvc-5.2

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

返回来自WebAPI的数据的json表示,没有强类型的IEnumerable

阅读了大量不同的解决方案并尝试了不同的方法(这里,这里,这里,这里,这里),我从API控制器得到了不同的(和意外的)结果.

我需要通过web api控制器返回表示为JSON的数据表:

[IdentityBasicAuthentication]
[Authorize]
[RequireHttps]
[Route("Reports/Report1")]
public HttpResponseMessage Get()
{
    DataTable dt = MyDAL.GetDataTable();
    if(someValidationFailed){
        Request.CreateResponse(HttpStatusCode.BadRequest, "Friendly error here");
    }
    return Request.CreateResponse(HttpStatusCode.OK, Newtonsoft.Json.JsonConvert.SerializeObject(dt));
}
Run Code Online (Sandbox Code Playgroud)

在Fiddler中,输出似乎被编码为转义字符串:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

"[{\"Site\":\"Headquarters\",\"Department\":\"HR\",\"FirstName\":\"Bob\",\"MiddleName\":null,\"Surname\":\"Fern\",\"EmployeeNumber\":\"444\"},
{\"Site\":\"Headquarters\",\"Department\":\"HR\",\"FirstName\":\"Alice\",\"MiddleName\":null,\"Surname\":\"Smith\",\"EmployeeNumber\":\"769\"}]"
Run Code Online (Sandbox Code Playgroud)

但是,目标是输出普通的Json(如果客户端请求它,则输出XML):

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

[{"Site":"Headquarters","Department":"HR","FirstName":"Bob","MiddleName":null,"Surname":"Fern","EmployeeNumber":"444"},
{"Site":"Headquarters","Department":"HR","FirstName":"Alice","MiddleName":null,"Surname":"Smith","EmployeeNumber":"769"}]
Run Code Online (Sandbox Code Playgroud)

有没有办法在不创建IEnumerable<Person>对象的情况下执行此操作?原因是这个类特定于这一个方法.我也不想使用StringBuilder,因为DataTable可能非常大,我已经看到以前抛出的内存异常.

我是WebAPI的新手,所以答案可能非常简单,但我可以提出更多问题的代码示例会非常有用.

c# json json.net asp.net-web-api

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

在新的空DataTable上使用“使用”是一种好习惯吗?

我一直在重写一些旧代码,以便该using语句用于我的DataTables,而不是Dispose每次都记住:

using (DataTable dt = BLL.GetDataTable()) {
   foreach(DataRow dr in dt.Rows) {
     // iteration logic
   }
}
Run Code Online (Sandbox Code Playgroud)

但是,在一种特定情况下,DataTable的内容基于变量而有所不同,因此我创建了初始DataTable,然后再分配值:

DataTable dt = new DataTable();
switch(foo) {
  case bar:
     dt = BLL.GetDataTable(bar);
     break;
  default:
     dt = BLL.GetDataTable();
     break;
}
// iteration logic here
dt.Dispose();
Run Code Online (Sandbox Code Playgroud)

更改为使用using,我有:

using (DataTable dt = new DataTable()) {
    switch(foo) {
      case bar:
         dt = BLL.GetDataTable(bar);
         break;
      default:
         dt = BLL.GetDataTable();
         break;
    }
    // iteration logic here
}
Run Code Online (Sandbox Code Playgroud)

那是好的做法(即empty使用using语句创建DataTable …

c# idisposable using-statement

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

作为 Web 参考(而非服务参考)使用时增加超时

StackOverflow 上有很多类似的问题。如果这是重复的,我希望能稍微解释一下如何在我的上下文中应用其他解决方案。

我有一个 WebAPI 项目。此 WebAPI 依次调用 Web 服务 (WSDL),处理数据并返回给客户端:

[Client] ---->  [My WebAPI] ----> [WSDL Server]
                                        |
       <--------  [My WebAPI] <---------
Run Code Online (Sandbox Code Playgroud)

WSDL 部分是基于 Java 的服务。在 VS2015 中我们可以毫无问题地使用它的唯一方法是将它添加为 Web 参考(对话框中的 2.0)。它工作得很好,根据需要使用强类型值,但今天我们看到了My WebApi和之间的超时WSDL Server

在 SO 的其他答案中,我看到可以在 web.config 中<bindings>或通过代理配置超时期限,但鉴于我的 web.config 内容与其他人有很大不同,我看不出如何将其连接起来。下面的代码是VS2015消费WSDL服务时生成的:

<system.serviceModel>
    <bindings />
    <client />
</system.serviceModel>
<applicationSettings>
    <MyWebAPI.Properties.Settings>
        <setting name="MyWebAPIs_ThirdPartyWSDLService_GetData" serializeAs="String">
            <value>https://wsdl.domain.com/webservices/services/GetData</value>
        </setting>
    </MyWebAPIs.Properties.Settings>
</applicationSettings>
Run Code Online (Sandbox Code Playgroud)

我也无法在 c# 智能感知代码中找到任何关于超时的内容。任何帮助或指示将不胜感激。我已经阅读了大约 12 篇关于 SO 的帖子,但仍然无法弄清楚。

c# asp.net wsdl web-services

3
推荐指数
1
解决办法
7245
查看次数