标签: asp.net-core-mvc

Jquery不会从数字中删除逗号和美元符号

在我的 ASP.NET MVC Core 项目中,在下面View我使用 jquery 尝试在提交表单之前从 SaleAmount 输入标记中删除 $ 符号和逗号。但它没有做任何事情。当我将 alert('Test') 放入 myJSFunction() 中时,警报成功弹出,这意味着该函数被调用,但它是用于删除逗号的代码,并且 $ 不起作用。

型号:

public class SaleViewModel
{
    [DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
    public float? SaleAmount { get; set; }
    ....
}
Run Code Online (Sandbox Code Playgroud)

控制器

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> UpdateSales(List<SaleViewModel> model, string returnUrl = null)
{
    ....
}
Run Code Online (Sandbox Code Playgroud)

查看

@model IList<MyProj.Models.SaleViewModel>
....
<form id="target" asp-controller="DbRelated" asp-action="UpdateSales" asp-route-returnurl="@ViewData[" ReturnUrl"]" method="post" onsubmit="myJsFunction()">
    <table class="table">
        <thead>
            ....
        </thead>
        <tbody>
            @for (int i = 0; …
Run Code Online (Sandbox Code Playgroud)

javascript jquery asp.net-core-mvc visual-studio-2015 asp.net-core

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

IServiceProvider.GetSingleton 在 Asp.Net Core DI 中解析 null

ConfigureServices()我的应用程序的引导过程中,我使用 .Net Core 附带的依赖注入框架注册了大部分瞬态和作用域类型。但是,我确实有一种注册为单例的类型是我的InProcessBus(我使用的是 CQRS 风格的架构)。

services.AddSingleton<InProcessBus>(new InProcessBus());
...         
services.AddSingleton<ICommandSender>(y => y.GetService<InProcessBus>());
services.AddSingleton<IEventPublisher>(y => y.GetService<InProcessBus>());
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在为将在 API 的控制器中使用的实际类型使用实现工厂函数。真正奇怪的是,当控制器加载并且运行时尝试构造函数注入时,ICommandSender它无法解决它并报告错误。

如果我检查serviceCollection我可以看到 implementationFactory 已针对ImplementationInstance属性下的类型正确注册。

Startup类的ConfigureServices()方法末尾深入和直接解析类型确认容器正在解析null.

ServiceLocator.GetService<ICommandSender>() // Is Null
Run Code Online (Sandbox Code Playgroud)

为什么针对明显存在于容器中的单例的 ImplementationFactory 方法不会在运行时解析?

.net dependency-injection asp.net-core-mvc .net-core asp.net-core

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

SetObjectAsJson 和 GetObjectFromJson 未显示为 .NET Core 1.0 中 HttpContext.Session 的一部分

我担心这是一个菜鸟错误,但我一直在寻找,但找不到与此相关的任何内容。

我有一个为 Intranet 应用程序构建的 .NET Core v1.0 Web 应用程序。它已经通过用户测试并部署到生产中。

今天有用户指出了一个小错误。自部署以来,我已经在 VS2015 中迁移了工作区,因此我下载了该项目。在初始构建时,我收到 CS1061 错误,指出这SetObjectAsJson不是ISession. 这是违规代码:

public async Task<IActionResult> Index(DateTime? beginDate, DateTime? endDate, string currentLocation)
    {       

        var userId = this.User.Identity.Name;
        var userEmail = userId.Remove(0, 11) + "@roystonllc.com";
        var querystring = this.HttpContext.Request.QueryString.Value;
        var ex = _context.Engineer.Where(x => x.sEmail == userEmail);
        var engineer = await ex.FirstOrDefaultAsync();
        HttpContext.Session.SetObjectAsJson("Engineer", engineer);
Run Code Online (Sandbox Code Playgroud)

SetObjectAsJson 和 GetObjectFromJson 的所有引用都显示无效。以下是在 Startup 中添加的服务

public void ConfigureServices(IServiceCollection services)
    {

        var connection = @"Server=THESERVER;Database=THEDATABASE;Trusted_Connection=True;Integrated Security=false;User ID=THEUSER;Password=THEPASSWORD";
        services.AddDbContext<SCHEDULEContext>(options => options.UseSqlServer(connection));
        // …
Run Code Online (Sandbox Code Playgroud)

asp.net-core-mvc visual-studio-2015 asp.net-core

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

在服务声明中使用下划线

有人可以向我解释下划线在以下表达式中的真正作用(或意味着):

services.AddSingleton<IConfiguration>( _ => Configuration );
Run Code Online (Sandbox Code Playgroud)

我读了一些文章,但我不能完全理解。非常感谢。

c# asp.net-core-mvc

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

使用资源所有者密码在身份服务器中获取声明

我使用身份服务器 4 进行身份验证,使用授权类型为“ResourceOwnerPassword”。我能够对用户进行身份验证,但无法获得与用户相关的声明。那么我怎样才能得到那些呢?

下面是我的代码

客户

启动文件

app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
            {
                Authority = "http://localhost:5000",
                RequireHttpsMetadata = false,
                ApiName = "api1"
            });
Run Code Online (Sandbox Code Playgroud)

控制器

public async Task<IActionResult> Authentication(LoginViewModel model)
        {
            var disco = await DiscoveryClient.GetAsync("http://localhost:5000");

            // request token
            var tokenClient = new TokenClient(disco.TokenEndpoint, "ro.client", "secret");
            var tokenResponse = await tokenClient.RequestResourceOwnerPasswordAsync(model.Email, model.Password, "api1");

            if (tokenResponse.IsError)
            {
                Console.WriteLine(tokenResponse.Error);
            }
// Here I am not getting the claims, it is coming Forbidden
            var extraClaims = new UserInfoClient(disco.UserInfoEndpoint);
            var identityClaims = await extraClaims.GetAsync(tokenResponse.AccessToken);
            if (!tokenResponse.IsError)
            {
                Console.WriteLine(identityClaims.Json);
            } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core-mvc asp.net-core identityserver4

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

ASP.NET Core Azure AD OpenID - 生产服务器上的令牌签名验证失败

我有一个 ASP.NET Core 1.1 项目,使用 Azure AD OpenID 进行身份验证。身份验证在我的开发箱(Windows 10)上运行良好,无论是在 IIS express 还是完整的 IIS 上。但是,当我将项目部署到我的服务器(Server 2008R2)时,登录到 Microsoft 重定向站点后,服务器抛出此错误:

Microsoft.IdentityModel.Tokens.SecurityTokenInvalidSignatureException:IDX10503:签名验证失败。尝试的密钥:'Microsoft.IdentityModel.Tokens.X509SecurityKey,KeyId:VWVIc1WD1Tksbb301sasM5kOq5Q Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException:Internal.Cryptography.Helpers.OpenStorageProvider(CngProvider provider) at System.KeySecurity.Cryptography.CngProvider provider) 发生内部错误。 Byte[] keyBlob, String curveName, CngKeyBlobFormat 格式, CngProvider provider) at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format) at Internal.Cryptography.Pal.X509Pal.DecodePublicKey(Oid oid, Byte[]在 Internal.Cryptography.Pal.CertificateExtensionsCommon.GetPublicKey[T](X509Certificate2 证书,

当我获取从 Azure 收到的令牌并将其插入 JWT.io 时,它会成功验证签名。

回顾一下:

  • dev box(iis express和iis)token签名验证成功
  • JWT.io 调试站点,token 和签名验证成功
  • 部署在服务器(iis 7.5)签名验证失败

它与我在服务器上的https证书有什么关系吗?在我的开发箱上,我使用的是用 powershell 创建的自签名证书。在服务器上,我们有一个由 go-daddy 颁发的证书。

谢谢你的帮助。

asp.net azure jwt asp.net-core-mvc openid-connect

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

如何在 ASP.NET Core MVC 项目中的 CkEditor 中上传图像?

我是 CkEditor 的新手,我已成功将编辑器集成并自定义到我的页面,但我无法上传图像。在 CkEditor 文档中,我发现他们使用 PhP 脚本上传文件,但我不确定如何将其添加到我的 ASP.NET MVC 项目中。

c# ckeditor asp.net-core-mvc

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

如何通过 Nuget 包中打包的 .NET Core 扩展添加路由或视图?

我正准备构建一个应用程序,我很可能会为其他客户一次又一次地使用大部分代码。

在一个地方管理代码并能够更新应用程序的最佳方法是将它放在私有 Nuget 包中。

为了实现它,我需要能够在控制器中使用 MVC,例如[HttpGet]等。我了解如何添加我的所有服务并使它们在应用程序中可用,如单例等,但我找不到任何关于我如何做的方法以这种方式添加端点或视图?

是否有可能通过调用来附加我所有的控制器等services.AddMyModule()

c# asp.net-core-mvc asp.net-core

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

Application Insights - 从 .net 核心中间件添加属性

我正在尝试从我们的 .net 核心 MVC 应用程序中获取一些关于应用程序洞察的额外信息。我发现了以下帖子: 在 Application Insights 指标中为每个请求添加自定义属性

在答案中,他们使用自定义遥测初始值设定项,如果您想要一些请求数据或其他内容,则可以使用。

现在我们的应用程序中有一组中间件。他们将一些标题翻译成可读的内容。

当然,我们可以记录标题并搜索它们可以具有的所有不同值。但是我们希望将中间件的结果转化为应用洞察的属性。

任何人都知道如何将中间件的一些结果用于 Application Insights 请求遥测的属性?

.net asp.net-core-mvc azure-application-insights .net-core

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

为什么返回新视图不会重置表单

我有一个这样的约会类:

public class Appointment
{
    public string ClientName { get; set; }
    public DateTime Date { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

HomeController

public IActionResult Index()
{
   return View(new Appointment { Date = DateTime.Now }); //first time to get the form
}
Run Code Online (Sandbox Code Playgroud)

并且默认index.cshtml内部有一个表单并显示客户端名称和日期,当按下提交按钮时,它会将值发布到MakeBooking操作方法,如下所示:

public ViewResult MakeBooking(Appointment appt)
{
   return View(); // second time to get the form
}
Run Code Online (Sandbox Code Playgroud)

我不明白的是,我运行了应用程序并在表单中填写了一些值,例如客户名称是“迈克尔”,日期是“20/08/2019”并按下了提交按钮,它被定向到MakeBookingaction 方法,在 action 方法中,我返回了一个没有数据模型的视图。所以第二次,表单应该没有价值,因为我没有appt在视图中传递数据模型,但为什么我仍然在视图中填充了“迈克尔”和“20/08/2019”?

这是index.cshtml

@model Appointment

@{ Layout = "_Layout"; } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-core-mvc

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