小编wer*_*zui的帖子

带条件运算符的C#插值字符串

我试图在插值字符串中使用条件运算符,但由于它中有冒号,编译器认为在冒号后出现格式字符串.

$"test {foo ? "foo is true" : "foo is false"}";
Run Code Online (Sandbox Code Playgroud)

我该如何使用这种声明?我想到的唯一一件事是这样的:

var fooString = foo ? "foo is true" : "foo is false";
$"test {fooString}";
Run Code Online (Sandbox Code Playgroud)

c# conditional-operator string-interpolation

33
推荐指数
2
解决办法
9726
查看次数

jQuery验证:$ .data($('form')[0],'validator').settings返回undefined

我有一个ASP.Net MVC项目,我正在使用不引人注目的jQuery验证.当一个元素失去焦点时添加验证,我正在打电话

$(document).ready(function () {
    // enable validation when an input loses focus.
    var settngs = $.data($('form')[0], 'validator').settings;
    settngs.onfocusout = function (element) { $(element).valid(); };
});
Run Code Online (Sandbox Code Playgroud)

这是在一个项目上工作,而它在另一个项目上抛出此异常,因为$ .data($('form')[0],'validator')返回undefined($ .data($('form')[0])返回一个空对象):

未捕获的TypeError:无法读取未定义的属性"设置"

但是,当按下提交按钮时,jQuery验证工作正常,因此其他所有内容都应正确设置.

我在body标签的末尾加载这些脚本:(上面列出的函数在customvalidations.js中,所以它应该在验证器应用到表单后执行)

<script src="/Staffing/Scripts/jquery-2.1.1.js"></script>
<script src="/Staffing/Scripts/globalize/globalize.js"></script>
<script src="/Staffing/Scripts/globalize/cultures/globalize.culture.de-DE.js"></script>
<script src="/Staffing/Scripts/bootstrap.js"></script>
<script src="/Staffing/Scripts/respond.js"></script>
<script src="/Staffing/Scripts/bootstrap-datepicker.js"></script>
<script src="/Staffing/Scripts/bootstrap-datepicker-globalize.js"></script>
<script src="/Staffing/Scripts/locales/bootstrap-datepicker.de.js"></script>
<script src="/Staffing/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Staffing/Scripts/jquery.validate.js"></script>
<script src="/Staffing/Scripts/jquery.validate.globalize.js"></script>
<script src="/Staffing/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="/Staffing/Scripts/localization/messages_de.js"></script>
<script src="/Staffing/Scripts/customvalidations.js"></script>
<script src="/Staffing/Scripts/uiadditions.js"></script>
<script src="/Staffing/Scripts/default.js"></script>
Run Code Online (Sandbox Code Playgroud)

解决方案: 这是有效的代码:

$(document).ready(function () {
    // enable validation when an input loses focus.
    var allForms = …
Run Code Online (Sandbox Code Playgroud)

javascript forms asp.net validation jquery

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

TFS Build Server无法使发布配置文件起作用:"找不到有效的AspnetCompilerPath"

我有一堆Web项目的解决方案,我希望我的构建服务器自动为每个项目创建包.我能够(几乎)一切正常.构建很好,并且将在每个构建上创建包.但只有当我没有在MSBuild参数中指定PublishProfile时.因此它只会插入默认值而不会预编译我的网站等.(参数是/p:DeployOnBuild=True /p:IsAutoBuild=True /p:VisualStudioVersion=12.0)

但是,我想使用我在Visual Studio中创建的发布配置文件(.pubxml).每个项目都有一个"Test.pubxml".但是当我指定PublishProfile参数时,构建将失败,并显示以下错误消息(参数为/p:DeployOnBuild=True;PublishProfile=Test /p:IsAutoBuild=True /p:VisualStudioVersion=12.0):

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Transform\Microsoft.Web.Publishing.AspNetCompileMerge.targets (411): Can't find the valid AspnetCompilerPath

是的,该文件Microsoft.Web.Publishing.AspNetCompileMerge.targets确实存在于该文件夹中.我可以在我的开发人员计算机上从Visual Studio部署项目就好了.

我使用以下内容:Windows Server 2012 R2 Visual Studio Ultimate 2013 Update 1(安装在构建服务器上)项目适用于.Net 4.5.1

asp.net msbuild tfs visual-studio

8
推荐指数
2
解决办法
5296
查看次数

在VSTS Pull Request中获取真实的源分支名称

我们正在使用带有Git和Team System Build(以前的Build vNext)的Visual Studio Team Systems。当我们执行请求请求时,将触发一个新的构建,该构建将用于运行单元测试并部署到隔离的测试系统中。为了执行到隔离系统的部署,我需要在构建过程中获取真实的源分支名称。但是,Build.SourceBranchName变量始终为“合并”,

例如:

从源FOO到目标BAR的请求 Build.SourceBranch是“ refs / pull / 1 / merge”,因此Build.SourceBranchName是“ merge”。但是我需要以某种方式使“ FOO”运行我的Power Shell脚本来配置系统。

有没有办法在VSTS的Git Pull Request中获取真实的源分支名称?

git azure-devops azure-pipelines

8
推荐指数
2
解决办法
2938
查看次数

ConfigurationManager.AppSettings在.Net Standard 1.5上生成编译时错误

我正在使用.Net Standard 1.5并希望从我的配置中读取一些值.但是以下行

ConfigurationManager.AppSettings["Foo"]
Run Code Online (Sandbox Code Playgroud)

给我以下编译时错误:

CS7069引用类型'NameValueCollection'声称它在'System'中定义,但找不到它

我想也许在.Net Standard中有另一种方法可以从AppSettings中读取,但我还没有找到关于该主题的任何内容.

configurationmanager appsettings namevaluecollection .net-standard .net-standard-1.5

8
推荐指数
0
解决办法
1231
查看次数

当出现错误时,EnforceCodeStyleInBuild true 不会使构建失败

我正在使用 VS 2019 16.9.0 Preview 1.0 并且有一个具有以下 PropertyGroup 的项目

<PropertyGroup>
  <OutputType>Exe</OutputType>
  <TargetFramework>net5.0</TargetFramework>
  <LangVersion>latest</LangVersion>
  <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
  <EnableNETAnalyzers>true</EnableNETAnalyzers>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

在我的 .editorconfig 中,我为以下划线开头的字段创建了规则_。在 Visual Studio 中,我可以看到错误为IDE1006. 但是,这不会导致构建失败。从我所读到的设置<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>应该会导致构建失败。我在 Visual Studio 和命令行中使用dotnet build.

我怎么能有这个错误导致构建失败?

csproj editorconfig visual-studio-2019 .net-5

7
推荐指数
1
解决办法
333
查看次数

Application Insights Map 未在 Angular SPA 和 .Net 6 API 之间连接

我有一个 Angular 13 SPA,它调用我的 .Net 6 API,然后调用数据库。目前整个系统正在我的本地计算机上运行。

我将 Application Insights JS SDK 和 Angular 插件添加到我的 SPA 中并初始化它们

包.json

"@microsoft/applicationinsights-web": "2.7.4",
"@microsoft/applicationinsights-angularplugin-js": "2.8.0",
Run Code Online (Sandbox Code Playgroud)

应用程序组件.ts

export class AppComponent {
  title = 'app';
  constructor(
    private router: Router,
    private settings: SettingsService,
  ) {
    const aiInstrumentationKey = 'ApplicationInsights_InstrumentationKey';
    var angularPlugin = new AngularPlugin();
    const appInsights = new ApplicationInsights({
      config: {
        instrumentationKey: settings.settings.extensions[aiInstrumentationKey],
        distributedTracingMode: DistributedTracingModes.W3C,
        disableFetchTracking: false,
        enableCorsCorrelation: true,
        enableDebug: true,
        enableDebugExceptions: true,
        enableRequestHeaderTracking: true,
        enableResponseHeaderTracking: true,
        extensions: [angularPlugin],
        extensionConfig: {
          [angularPlugin.identifier]: { router: this.router } …
Run Code Online (Sandbox Code Playgroud)

c# azure-application-insights angular azure-monitor

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

停止nuget更新一个包的Binding重定向

我正在使用Nuget,并希望保留自动绑定重定向.但是对于一个特定的程序集,我想停止nuget在程序包恢复期间应用自动重定向.

这可能吗?

据我所知,我只能在项目级别禁用它,但不能在引用的程序集级别禁用它.

背景:System.Net.Http 4.1.1.0有一个bug,所以我需要将它保持在4.0.0.0,尽管有些软件包说他们想要4.1.1.0.

c# nuget assembly-binding-redirect

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

ASP网站似乎没有在Forms.Config中使用machineKey进行FormsAuthentication.Decrypt

我想从我的ASP.Net MVC 5(.Net 4.5.1,本地托管在iisexpress上,从Visual Studio运行)传递身份验证cookie到我的WCF服务(.Net 4.5.1,在本地托管在WcfSvcHost上,从中运行) Visual Studio解决方案)并在那里解密.我已将两者配置为使用相同的机器密钥(ASP的Web.config,WCF的App.config):

<machineKey validationKey="930681CA8CDC1BC09118D6B37E4A1B7712CEDBBD9FA1E35407EA1CD440C7E6F2DB9E93DADAC4098F90ACC7417DBE57C196722FC67F313A6AAE0F946E2FF731B6" decryptionKey="714C9581DA522C636B2D97D80276D5ACC02C274A11ABF117C76181B0480D4AEA" validation="SHA1" decryption="AES" />
Run Code Online (Sandbox Code Playgroud)

两者都引用相同的System.Web.dll:

C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.1\System.Web.dll(v4.0.30319)

但是当我尝试将cookieString传递给我的服务并调用时

FormsAuthenticationTicket tick = FormsAuthentication.Decrypt(cookieString);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

无法验证数据

我反过来尝试了(在WCF服务上生成假票并在ASP网站上解密),这也没有用.我可以在ASP网站上生成一张票并在那里解密就好了.我也可以在服务上生成一张票,并在那里解密它没有任何问题.

var t1 = new FormsAuthenticationTicket("foo", false, 1337);
var cookie = FormsAuthentication.Encrypt(t1);
var t2 = FormsAuthentication.Decrypt(cookie);
Run Code Online (Sandbox Code Playgroud)

我还制作了一个小型控制台应用程序,在那里创建了一个票证,并在WCF服务上解密,没有任何问题.

因此,似乎ASP网站不使用指定的密钥来加密或解密数据.

有谁知道我能做些什么来解决这个问题?

编辑:我按照本指南获取cookie并将其传递给我的服务. http://thoughtorientedarchitecture.blogspot.de/2009/10/flowing-aspnet-forms-authentication.html

然而,正如我所说,我试图复制加密cookie的价值并在一个简单的控制台应用程序中使用相同的机器密码解密它,它不起作用.

c# asp.net wcf forms-authentication machinekey

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

具有DisplayNameFor的Display属性中的ASP MVC不间断空格

我有一个带有“价格”属性的模型,该模型具有DisplayAttribute

[Display(Name = "Price (in €)")]
Run Code Online (Sandbox Code Playgroud)

现在我想使用表标题显示

@Html.DisplayNameFor(model => model.Price)
Run Code Online (Sandbox Code Playgroud)

但是,当列很小时,“文本”可能会分为两行:

Price (in
€)
Run Code Online (Sandbox Code Playgroud)

但我希望它打破这种方式:

Price
(in €)
Run Code Online (Sandbox Code Playgroud)

是否可以在Display属性中插入一个不间断的空格?使用“ Price (in&nbsp;€)”会导致“ &nbsp;”打印为文本。

asp.net asp.net-mvc displayattribute

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

jquery $(this).parents('.cssClassName')只在IE中找到窗口,但在其他浏览器中有效

我有以下jquery代码:

 jQuery(function ($) {
    $(document).on('click', '.del', function () {
        var self = $(this);
        parent = self.parents('.transportRow');
        parent.remove();
    });
});
Run Code Online (Sandbox Code Playgroud)

当我点击带有"transportRow"类的div中的"del"类的链接时,应该删除div.

这在Webkit和Firefox中运行良好,但在IE中却没有

我收到一个错误,告诉我该对象不支持属性或方法"删除".

当我在调试器中检查它时,父似乎是窗口,而不是div元素.

有谁知道如何让这个脚本在IE中运行?

html javascript jquery internet-explorer

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