我正在尝试使用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">
//<\[\/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) 我尝试在 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”无效。
我将文件拖到记事本中,看看是否有任何标题可以揭示问题,但它看起来像是某种东方事件......!
谁能告诉我我在这里做错了什么吗?
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
在最终向用户呈现结果集之前,我对表变量做了很多工作.例如,我可能从许多不同的表中拉入一大堆列,如下所示:
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)在表变量中使用而不是nvarchar(n),但在某些环境中它具有可靠性和性能风险.如果你认为这应该被删除然后公平(但请停止争论我欣赏所有输入!)
使用VS2013和/或VisualStudio.com,是否可以在创建分支("Main"分支到"Dev001")后查看"Main"和"Dev001"之间不同的所有文件的列表?例如,我想查看当前分支中已修改/创建的所有文件,因为它已分支.
我最接近的是右键单击分支,选择" 查看历史记录",然后单击每个变更集以在" 变更集详细信息"面板中查看文件,但是,有很多变更集需要很长时间.
请注意我没有使用Git.
我有自定义授权属性:
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.
阅读了大量不同的解决方案并尝试了不同的方法(这里,这里,这里,这里,这里),我从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的新手,所以答案可能非常简单,但我可以提出更多问题的代码示例会非常有用.
我一直在重写一些旧代码,以便该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 …
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 的帖子,但仍然无法弄清楚。
asp.net ×3
c# ×3
asp.net-mvc ×2
jquery ×2
tfs ×2
idisposable ×1
iis ×1
javascript ×1
json ×1
json.net ×1
mousedown ×1
mousemove ×1
mouseup ×1
regex ×1
sql-server ×1
t-sql ×1
tar ×1
tfs2013 ×1
web-services ×1
wsdl ×1