在我的 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
在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
我担心这是一个菜鸟错误,但我一直在寻找,但找不到与此相关的任何内容。
我有一个为 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) 有人可以向我解释下划线在以下表达式中的真正作用(或意味着):
services.AddSingleton<IConfiguration>( _ => Configuration );
Run Code Online (Sandbox Code Playgroud)
我读了一些文章,但我不能完全理解。非常感谢。
我使用身份服务器 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) 我有一个 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 时,它会成功验证签名。
回顾一下:
它与我在服务器上的https证书有什么关系吗?在我的开发箱上,我使用的是用 powershell 创建的自签名证书。在服务器上,我们有一个由 go-daddy 颁发的证书。
谢谢你的帮助。
我是 CkEditor 的新手,我已成功将编辑器集成并自定义到我的页面,但我无法上传图像。在 CkEditor 文档中,我发现他们使用 PhP 脚本上传文件,但我不确定如何将其添加到我的 ASP.NET MVC 项目中。
我正准备构建一个应用程序,我很可能会为其他客户一次又一次地使用大部分代码。
在一个地方管理代码并能够更新应用程序的最佳方法是将它放在私有 Nuget 包中。
为了实现它,我需要能够在控制器中使用 MVC,例如[HttpGet]等。我了解如何添加我的所有服务并使它们在应用程序中可用,如单例等,但我找不到任何关于我如何做的方法以这种方式添加端点或视图?
是否有可能通过调用来附加我所有的控制器等services.AddMyModule()?
我正在尝试从我们的 .net 核心 MVC 应用程序中获取一些关于应用程序洞察的额外信息。我发现了以下帖子: 在 Application Insights 指标中为每个请求添加自定义属性
在答案中,他们使用自定义遥测初始值设定项,如果您想要一些请求数据或其他内容,则可以使用。
现在我们的应用程序中有一组中间件。他们将一些标题翻译成可读的内容。
当然,我们可以记录标题并搜索它们可以具有的所有不同值。但是我们希望将中间件的结果转化为应用洞察的属性。
任何人都知道如何将中间件的一些结果用于 Application Insights 请求遥测的属性?
我有一个这样的约会类:
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) asp.net-core-mvc ×10
asp.net-core ×5
c# ×5
.net ×2
.net-core ×2
asp.net ×1
asp.net-mvc ×1
azure ×1
ckeditor ×1
javascript ×1
jquery ×1
jwt ×1