根据我的研究,看起来Javascript的正则表达式没有任何内置等效于Perl的/ x修饰符,或.NET的RegexOptions.IgnorePatternWhitespace修饰符.这些非常有用,因为它们可以使复杂的正则表达式更容易阅读.首先,我错过了什么,是否有一个内置的Javascript相当于这些?其次,如果没有,有没有人知道一个好的jQuery插件将实现这个功能?由于Javascript明显的正则表达式限制,必须将复杂的正则表达式压缩成一行是一种遗憾.
我正在使用实体框架代码 - 首先自动创建我的数据库模式,我的一个实体看起来像这样:
public class AssessmentsCaseStudies {
#region Persisted fields
[Required]
[Key, Column(Order=0)]
[ForeignKey("Assessment")]
public int AssessmentId { get; set; }
[Required]
[Key, Column(Order=1)]
[ForeignKey("CaseStudy")]
public int CaseStudyId { get; set; }
[Required]
public int Score { get; set; }
[ForeignKey("Follows")]
public int? FollowsCaseStudyId { get; set; }
#endregion
#region Navigation properties
public virtual Assessment Assessment { get; set; }
public virtual CaseStudy CaseStudy { get; set; }
public virtual CaseStudy Follows { get; set; }
#endregion
}
Run Code Online (Sandbox Code Playgroud)
当EF自动生成我的数据库时,它会生成一个包含以下列的表:
AssessmentId …Run Code Online (Sandbox Code Playgroud) 我正在编写一个Powershell脚本来浏览我的IIS绑定列表,查找任何具有特定"旧"证书指纹的内容,并将其证书替换为具有"新"指纹的证书.这样我就可以为许多绑定更新证书,因为我们对很多站点使用相同的证书,因此我们需要将具有旧证书的所有绑定更新到新证书.这是我想出的:
##### EDIT THESE VARIABLES #####
$SiteName = "movc-website-www"
$OldCertThumbprint = "?76 ae 0b 2e b9 f7 45 ce 27 c4 02 6e 90 66 62 93 69 d7 5e 4c"
$ReplacementCertThumbprint = "?7f fa 9f f3 90 b8 a2 d8 4c 98 51 47 a5 64 1d 90 f6 2f ca 73"
##### FUNCTIONS #####
Function ReplaceWebsiteBinding {
Param(
[string] $SiteName,
[string] $OldCertThumbprint,
[string] $ReplacementCertThumbprint
);
Import-Module WebAdministration;
$ReplacedCount = 0
$IISBindings = (Get-ItemProperty -Path "IIS:\Sites\$SiteName" -Name Bindings)
for …Run Code Online (Sandbox Code Playgroud) 我知道DotNetZip或SharpZipLib库的喜欢,通常建议在.NET语言创建ZIP文件(在我的情况下,C#),但它不是不可能使用System.IO.Packaging生成的ZIP文件.我认为尝试在C#中开发一个可以执行此操作的例程可能会很好,而无需下载任何外部库.有没有人有一个System.IO.Packaging用于生成ZIP文件的方法或方法的好例子?
我的Visual Studio 2008项目有一些中等大小的构建前和构建后事件脚本(实际上它主要是构建后的事件脚本).它们工作正常,因为它们正常运行,当我exit 0构建成功时,当exit 1构建失败并出现错误时.但是,这个错误是巨大的,并且是这样的:
The command "if Release == Debug goto Foo
if Release == Release goto Bar
exit 0
:Foo
mkdir "abc"
copy "$(TargetDir)file.dll" "abc"
[...]
" exited with code 1.
Run Code Online (Sandbox Code Playgroud)
你明白了.整个脚本始终作为错误描述的一部分转出.在构建发生时,整个脚本也会在"输出"窗口中转储出来.那么,为什么我在网上看到各种参考文献echo在这些脚本中使用?例如,以下是一个特定网站上的示例的一部分:
:BuildEventFailed
echo POSTBUILDSTEP for $(ProjectName) FAILED
exit 1
:BuildEventOK
echo POSTBUILDSTEP for $(ProjectName) COMPLETED OK
Run Code Online (Sandbox Code Playgroud)
有没有办法让Visual Studio禁止除了echoed 之外的所有脚本输出(因此echo只使用输出你想要的东西),或者这些例子是误导的,他们没有意识到整个脚本是总是甩出来的?
我传统上总是将@using指令放在我的ASP.NET Razor页面的顶部,以及@model指令.但是,对于我的整体布局,我想确保DOCTYPE声明是在文档的最开头,所以我想@using稍微向下推.你有效吗?
<!DOCTYPE html>
<html>
@using My.Library;
<head>
<title>Test web page</title>
...
Run Code Online (Sandbox Code Playgroud)
另外,有没有关于@using指令在Razor页面中可以使用的文档?我似乎找不到任何东西.例如,在其他一些Razor代码之后使用它是否有效,还是必须先出现?
在ASP.NET Core中,可以Configure使用用于Web主机构建器的启动类的方法,在过程中注册新的中间件到请求处理管道中app.UseMiddleware(...)。但是,在调试期间,如何获得已注册的中间件提供程序的列表?我看不到任何实际查看已为该应用程序注册的中间件的方法。
我必须在这里遗漏一些明显的东西,但我在ASP.NET MVC Web项目.csproj文件的末尾有这个:
[...]
<Target Name="BeforePublish">
<Error Condition="'foo'=='foo'" Text="test publish error" />
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
据我所知,这应该总是导致发布失败并出现错误.然而,如果我加载项目,右键单击它,然后单击"发布",这个东西会毫不费力地发布.我错过了什么?
我想重定向到同一控制器中的操作,但丢失路由值(特别是id值).事实证明这非常困难.我有像这样配置的路由:
context.MapRoute(
"Monitoring_controllerIdSpecified",
"Monitoring/{controller}/{id}/{action}",
new { action = "Status" }
);
context.MapRoute(
"Monitoring_default",
"Monitoring/{controller}/{action}",
new { controller = "Events", action = "Index" }
);
Run Code Online (Sandbox Code Playgroud)
......以及EventsController像这样的动作方法:
public ActionResult Status(int id) {
if (id > 1000) {
TempData["ErrorMessage"] = "ID too high.";
return RedirectToAction("Index", new { id = (int?)null });
}
// (code to display status)
}
Run Code Online (Sandbox Code Playgroud)
如果我然后访问类似的东西/Monitoring/Events/1001,RedirectToAction确实被调用,但我被重定向到/Monitoring?id=1001而不是仅仅/Monitoring.它似乎匹配第一个路由,Monitoring_controllerIdSpecified即使该路由具有id强制路由参数,我告诉它设置id为null,并且奇怪地id变成查询字符串键.换句话说,它没有正确清除/删除id路线值.设置id为 …
我有一个异步C#方法,我获取HTTP资源,我在无限循环中进行.但是我不想太快地击中资源.我目前的代码是:
HttpClient http = new HttpClient();
while (true) {
// Long-poll the API
var response = await http.GetAsync(buildUri());
Console.WriteLine("Resp: " + response.ToString());
Console.WriteLine("CONTENT:");
Console.WriteLine(await response.Content.ReadAsStringAsync());
}
Run Code Online (Sandbox Code Playgroud)
但是,我希望能够确保每10秒钟不会发生一次HTTP请求.所以我想在循环开始时启动一个10秒计时器,最后说"等待完成10秒计时器".有没有办法在C#.NET中执行此操作?
c# ×5
.net ×3
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
asynchronous ×1
build ×1
certificate ×1
database ×1
doctype ×1
iis ×1
javascript ×1
middleware ×1
msbuild ×1
powershell ×1
razor ×1
regex ×1
routes ×1
scripting ×1
ssl ×1
whitespace ×1
zip ×1