我一直在想为什么HTML规范的任何修订都没有textarea
能够自我关闭.如此问题很多的已经回答了为什么它是由一个单独的标签input
,这对我来说很有意义,他们会希望保持它作为兼容单独的标签,但为什么他们不把<textarea />
同样有效,<textarea></textarea>
因为这止跌"据我所知,打破任何事情.
我最近在考虑GUID,这让我尝试了这段代码:
Guid guid = Guid.NewGuid();
Console.WriteLine(guid.ToString()); //prints 6d1dc8c8-cd83-45b2-915f-c759134b93aa
Console.WriteLine(BitConverter.ToString(guid.ToByteArray())); //prints C8-C8-1D-6D-83-CD-B2-45-91-5F-C7-59-13-4B-93-AA
bool same=guid.ToString()==BitConverter.ToString(guid.ToByteArray()); //false
Console.WriteLine(same);
Run Code Online (Sandbox Code Playgroud)
您可以看到所有字节都在那里,但是当我使用它们时,其中一半是错误的顺序BitConverter.ToString
.为什么是这样?
在asp.net Web Api2中,当您为具有实体框架的模型创建异步Web api控制器时,默认情况下,新控制器中的第一个方法如下:
public IQueryable<MyModel> GetMyModel()
{
return db.MyModel;
}
Run Code Online (Sandbox Code Playgroud)
此方法的JSON输出只是所有MyModel
条目的数组.同时,POST,PUT,GET(int id)和DELETE的所有其他方法都标记为async
并返回Task<IHttpActionResult>
.为什么不是同一风格的第一个GET方法,如下所示:
public async Task<IHttpActionResult> GetMyModel()
{
return Ok(await db.MyModel.ToArrayAsync());
}
Run Code Online (Sandbox Code Playgroud)
我试过这个,它产生相同的JSON输出.
我在ggplot2中制作了直方图集合,并使用ImageMagick将它们设置为gif动画.
我们的想法是假设x轴刻度在所有图形中都是相同的,但这并不完全正确,因为y轴由于标签的宽度变化而摇摆不定.如何锚定图形以使所有图形具有完全相同的轴位置?
这是我的ggplot代码,如果它有帮助:
hist.fn<-function(tier,ddf){
df<-ddf[ddf$tier==tier,]
l<-match(tier,levels(df$tier))
hist.png<-ggplot(df,aes(df$"Premium Adult Individual Age 40" ))+
geom_histogram()+
labs(title=paste0(tier," premiums in federal exchanges"),
x ="Premium", y = "Frequency")+
coord_cartesian(xlim=c(0, 1500))+
theme_bw()+
theme(text = element_text(size=14), plot.title = element_text(face="bold"),axis.title.x =element_text(face="bold"),axis.title.y =element_text(face="bold"))
file=paste0(l,"hist.jpg")
ggsave(filename=file, plot=hist.png, width=13, height=8, dpi=50)
return(hist.png)
}
data.df$tier%>% levels %>% lapply(FUN=hist.fn,ddf=data.df) ->histograms.of.tiers
system("magick -delay 75 *hist.jpg hist.gif")
Run Code Online (Sandbox Code Playgroud) Javascript着名的是不为循环中的每个循环创建新的作用域for
.所以例如这段代码:
for(var i=0;i<10;i++){
//some code
}
console.log(i); //prints 10 instead of ReferenceError!
Run Code Online (Sandbox Code Playgroud)
i
实际上创建为与for循环之外的所有内容在同一范围内的变量.这对我来说似乎完全是疯了,因为它以一种不直观的方式污染了命名空间.
但是,最新的ECMA规范添加了一个let
关键字,用于将变量范围限定在包含块中:
for(let i=0;i<10;i++){
//some code
}
console.log(i); //gives ReferenceError 'i' is not defined
Run Code Online (Sandbox Code Playgroud)
假设兼容性不是问题(let
在IE11中支持,firefox,chrome,至少在严格模式下)我们现在应该考虑let
成为编写for循环的标准,正确方法吗?或者有什么理由继续使用var
?
另外,兼容性的最佳方法是什么?无论如何使用let
支持的浏览器,但是对于其他浏览器有某种后备,或者我们是否var
一直在使用,直到每个人都升级他们的浏览器?
假设我有一张包含大量列的学生表.我想要相当于EF
SELECT id,lastname,firstname
FROM students
WHERE coursename='Eurasian Nomads'
ORDER BY lastname,firstname
Run Code Online (Sandbox Code Playgroud)
我只想要完整Student
模型的一个子集,所以我制作了一个视图模型
public class StudentView{
public int ID{get;set;}
public string LastName{get;set;}
public string FirstName{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
这个EF代码似乎工作:
List<StudentView> students=context.Students
.Where(s=>s.CourseName=="Eurasian Nomads")
.OrderBy(s=>s.LastName)
.ThenBy(s=>s.FirstName)
.Select(s=>new StudentView(){ID=s.ID,LastName=s.LastName,FirstName=s.FirstName})
.ToList();
Run Code Online (Sandbox Code Playgroud)
但我的问题是这些条款的顺序是否重要,如果是这样,我应遵循哪种规则以获得最佳表现?
例如,这似乎也有效:
List<StudentView> students=context.Students
.Select(s=>new StudentView(){ID=s.ID,LastName=s.LastName,FirstName=s.FirstName})
.OrderBy(s=>s.LastName)
.ThenBy(s=>s.FirstName)
.Where(s=>s.CourseName=="Eurasian Nomads")
.ToList();
Run Code Online (Sandbox Code Playgroud) 我想dl
使用d3.js从一些数据列表中创建一系列标签.
我想出的代码是这样的:
var x=d3.select("body")
.append('ol')
.selectAll('li')
.data(data)
.enter()
.append('li')
.append('dl')
.selectAll()
.data(d=>Object.entries(d.volumeInfo)).enter();
x.append('dt')
.text(d=>d[0]);
x.append('dd')
.text(d=>d[1]);
Run Code Online (Sandbox Code Playgroud)
其中data
是一个对象数组.除了元素的顺序不正确外,一切正常.
这是我设法得到的订单:
<dl>
<dt>key1</dt>
<dt>key2</dt>
<dd>value1</dd>
<dd>value2</dd>
</dl>
Run Code Online (Sandbox Code Playgroud)
但它应该是这样的:
<dl>
<dt>key1</dt>
<dd>value1</dd>
<dt>key2</dt>
<dd>value2</dd>
</dl>
Run Code Online (Sandbox Code Playgroud)
我已经做了相当多的谷歌搜索,没有回答这个问题,至少不是在v5中工作的方式,或者不是有多个dt/dd对.
这似乎是d3.js应该能做的基本事情.
以前有人问过这个问题,但答案已经过时了,我想知道现代方法是什么。
我有一些 C# 代码可以在 Active Directory 中搜索具有 employeeid 的员工,employeeidid
是一个字符串,可能来自 Web 表单或其他东西,并且不能完全信任。
DirectorySearcher search = new DirectorySearcher(new DirectoryEntry());
search.Filter = "(&(objectClass=user)(employeeid=" + id + "))";
search.PropertiesToLoad.Add("mail");
search.PropertiesToLoad.Add("telephonenumber");
SearchResult sresult = search.FindOne();
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,输入一个id
可以做我并不真正打算做的事情的值并不会太难。OWASP 认为这是一个严重的漏洞。防止这种情况的最佳现代方法是什么?
如果有一个正在积极维护的替代库函数,我不希望像这样手动替换特定字符的我自己的代码。
我在任何地方看到的最佳解决方案是使用AntiXSS
库:
string encoded = Microsoft.Security.Application.Encoder.LdapFilterEncode(id);
Run Code Online (Sandbox Code Playgroud)
但似乎不再维护该库:
AntiXSS 现已终止 在 .NET 4.0 中,框架中包含一个 AntiXSS 版本,可以通过配置启用。在 ASP.NET v5 中,基于白名单的编码器将是唯一的编码器。因此,AntiXSS 的独立版本应被视为生命周期结束。源代码和安装程序将保持在线状态,允许使用 .NET 早期版本的人们启用替代的、基于白名单的编码,但除了安全修复之外,不会进行进一步的增强。
很多答案都指出,LinqtoAD
这听起来确实是一个很好的方法,但不幸的是,它听起来并没有做好生产准备:
免责声明 该项目旨在作为实现自定义 LINQ 查询提供程序的基本示例。它尚未经过彻底测试,我们不提供任何支持。如果没有对技术行为进行适当的测试和验证,请勿在生产环境中使用它。非常欢迎用户通过本站点上的问题跟踪器报告问题和错误。
什么是现代方法?.Net 框架的较新版本中是否有任何东西可以减轻 LDAP 注入?
假设我有以下实体:
public class Calendar{
public int ID{get;set;}
public ICollection<Day> Days { get; set; }
}
public class Day{
public int ID{get;set;}
public DateTime Date{get;set;}
public int CalendarID{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
这是与CalendarID
作为外键的一对多关系。问题是我还想确保每个日期在每个日历中只存在一次。也就是说,没有两天同时具有相同Date
和相同的CalendarID
。在原始 SQL 中,我可以通过以下方式执行此操作:
ALTER TABLE Days
ADD CONSTRAINT UN_Day UNIQUE ([Date],CalendarID);
Run Code Online (Sandbox Code Playgroud)
但是,实体框架在自动创建表时不会知道我想要这个。如何在 fluent API 中指定它?
我想使用R脚本将数据框输入到数据库中的现有表中,并且我希望数据库中的表具有顺序主键.我的问题是RODBC似乎不允许主键约束.
这是用于创建我想要的表的SQL:
CREATE TABLE [dbo].[results] (
[ID] INT IDENTITY (1, 1) NOT NULL,
[FirstName] VARCHAR (255) NULL,
[LastName] VARCHAR (255) NULL,
[Birthday] DATETIME NULL,
[CreateDate] DATETIME NULL,
CONSTRAINT [PK_dbo.results] PRIMARY KEY CLUSTERED ([ID] ASC)
);
Run Code Online (Sandbox Code Playgroud)
并使用一些R代码进行测试:
ConnectionString1="Driver=ODBC Driver 11 for SQL Server;Server=myserver; Database=TestDb; trusted_connection=yes"
ConnectionString2="Driver=ODBC Driver 11 for SQL Server;Server=notmyserver; Database=TestDb; trusted_connection=yes"
db1=odbcDriverConnect(ConnectionString1)
query="SELECT a.[firstname] as FirstName
, a.[lastname] as LastName
, Cast(a.[dob] as datetime) as Birthday
, cast(a.createDate as datetime) as CreateDate
FROM [dbo].[People] a"
results=NULL
results=sqlQuery(db1,query,stringsAsFactors=FALSE)
close(db1)
db2=odbcDriverConnect(ConnectionString) …
Run Code Online (Sandbox Code Playgroud) c# ×5
javascript ×2
r ×2
.net ×1
animated-gif ×1
asp.net ×1
d3.js ×1
ggplot2 ×1
guid ×1
html ×1
iqueryable ×1
ldap ×1
linq ×1
rodbc ×1
sql ×1
sql-server ×1
w3c ×1