在这种情况下,如何将我的模型数据(列表)映射到另一个viewmodel数据(列表)?
这是我有的:
我的json viewmodel
public class JsonViewModel
{
public List<JsonItem> Items { get; set; }
}
public class JsonItem
{
public string Name { get; set; }
public int Unit { get; set; }
public decimal Price { get; set; }
public IEnumerable<Item> ItemStock { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的主要模特
public class Item
{
public int ItemId { get; set; }
public string Name { get; set; }
public int QuantityInPack { get; set; }
public int Quantity { get; …Run Code Online (Sandbox Code Playgroud) 我需要根据 JavaScript 中的单个值动态拆分数组。
我有一个数组:
var dataStuff = [
{ Name: 'Apple', Tag: 'Fruit', Price: '2,5'},
{ Name: 'Bike', Tag: 'Sport', Price: '150'},
{ Name: 'Kiwi', Tag: 'Fruit', Price: '1,5'},
{ Name: 'Knife', Tag: 'Kitchen', Price: '8'},
{ Name: 'Fork', Tag: 'Kitchen', Price: '7'}
];
Run Code Online (Sandbox Code Playgroud)
我希望按标签拆分数组,例如。
var Fruit = [
{ Name: 'Apple', Tag: 'Fruit', Price: '2,5'},
{ Name: 'Kiwi', Tag: 'Fruit', Price: '1,5'}
];
var Sport = [
{ Name: 'Bike', Tag: 'Sport', Price: '150'}
];
var Kitchen = [ …Run Code Online (Sandbox Code Playgroud) 在我的Angular 5应用程序中,我正在使用ng build --aot --watch构建应用程序并观察代码中的任何更改.不幸的是,通常在第二次,第三次保存文件 - webpack只是卡住消息:95% emitting我必须取消终端并再次执行.
我找到了解决方法,ng build --aot --watch --sourcemaps=false虽然我无法在资源管理器中调试打字稿.所以这个解决方案并不完美.
我正在尝试使用Postman与Identity Server Asp.net Core一起测试我的API。
这就是我要尝试的方式:
HttpGet对https:// localhost:5000 / Account / Login的第一个请求,并在响应正文中收到:<input name="__RequestVerificationToken" type="hidden" value="CfDJ8MoS9upoM4dNp8Kx-AdvA-uYr13_PAkuMZpzYMV8UmxZq5GdLTvN-Ht5NpTLmPtlhL5d5z2Hu2vUJoJGhk1AMlARDcOwqgq7Cef1dfQL_vl4tIFM4kx9RZPz8DHU26-U9qLnKAIstZgR42-1FuGNh24" />HttpPost以https://开头本地主机:5000 /帐号/登录与RequestVerificationToken使用令牌从身体接收到的HttpGet请求。

而且总是error 400如您在上面的屏幕截图中所见。
在Visual Studio中,我可以看到捕获了一些请求,但显然是不正确的。

如果我将删除属性,[ValidateAntiForgeryToken]那么当然一切都会很好,但是显然因为禁用了验证。
假设我有应用程序 .NET Core 2.1 Web API + Angular 7
为什么我总是要返回ActionResult?这有什么区别吗:
public ActionResult<MyDTO> GetData(){
return new MyDTO();
}
Run Code Online (Sandbox Code Playgroud)
然后:
public MyDTO GetData(){
return new MyDTO();
}
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我都会在 UI 上接收对象,并且都返回代码 200。那么使用 ActionResult 只是一种好的做法,还是什么?
我在(oidc-client.js)+ .Net Core IdentityServer4处理的Angular 8中获得了授权。
一切似乎都正常,但是当我在第二个选项卡中打开相同的应用程序时,则需要我再次登录。IdentityServer4具有cookie,因此单击“ 登录”按钮就足够了,并且无需再次提供登录名/密码即可接收新令牌。无论如何,它仍然很烦人。
有什么办法解决吗?我在githubg上发现了一个可能会有所帮助的问题。
有人建议需要将令牌本地化从LocalStorage更改为SessionStorage。但是从个人角度而言,SessionStorage更好,我会保留在那个位置。
authorization session-storage identityserver4 oidc-client-js angular
假设这是我的 AppModule:
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
MaterialModule,
HomeModule
],
exports: [
MaterialModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
正如你所看到MaterialModule的,我声明了HomeModule,然后我导出了它MaterialModule。但仍然在HomeModule我无法使用组件中MaterialModule,错误:
1. If 'mat-icon' is an Angular component, then verify that it is part of this module.
2. If 'mat-icon' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.
Run Code Online (Sandbox Code Playgroud)
所以我被迫MaterialModule再次导入HomeModule。这是正确的行为还是我做错了什么? …
我在 Angular 9 应用程序中使用带有自定义表单控件的响应式表单。
我用自定义表单控件包装了我的ng-select控件。
我在验证方面遇到问题。我将 formControl 设置为必需。文档说cssng-invalid类应该自动设置为 ng-select。但实际上使用自定义表单控件它无法正常工作。css 类未设置,但包装器类已设置。我做错了什么还是这是图书馆的问题?
在我的tsconfig.json中,我有规则"strictNullChecks": true,但我不希望在我的测试中使用此规则,因为所有 *.spec.ts 文件。所以我试图在tsconfig.spec.json中覆盖此标志,但它不起作用。我究竟做错了什么?
tsconfig.json
{
"compileOnSave": false,
"compilerOptions": {
"noImplicitAny": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noFallthroughCasesInSwitch": true,
"strictNullChecks": true,
"downlevelIteration": true,
"importHelpers": true,
"module": "esnext",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"alwaysStrict": true,
"skipLibCheck": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
],
"baseUrl": "./ClientApp",
},
"angularCompilerOptions": {
"strictTemplates": true,
"strictOutputEventTypes": false
}
}
Run Code Online (Sandbox Code Playgroud)
tsconfig.spec.json
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/spec",
"baseUrl": "./", …Run Code Online (Sandbox Code Playgroud) 我试图了解OAuth 2.0 授权代码流 + PKCEcode_challange和参数之间的区别。state
我知道该state参数是针对 CSRF 攻击的验证,并在客户端(例如 Angular SPA)上生成(并保存在本地存储中),并且需要在成功登录后从回调中的授权应用程序返回,并与之前在state本地保存的值进行比较贮存。
而code_challange生成的基础上code_verifier也是生成并保存在本地存储中。那么使用上有什么区别呢?
我还注意到奇怪的事情 - 我复制了生成的身份验证网址,它是:https://APP_ADDRESS.b2clogin.com/APP_ADDRESS.onmicrosoft.com/b2c_signupsignin/oauth2/v2.0/authorize?client_id=f9d2b[...]&redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Fauth-callback&response_type=code&scope=f9d2b[...]%20openid&state=31caa207[...]&code_challenge=-MefGRhOo[...]&code_challenge_method=S256&response_mode=query
我在不同的浏览器中使用了该网址。我能够成功登录。我只在控制台中遇到错误:No matching state found in storage。这是有道理的,因为新浏览器中的本地存储是空的。
但为什么没有任何错误呢code_challange?我想它应该无法登录成功,或者我错过了什么?
angular ×5
asp.net-core ×2
typescript ×2
arrays ×1
asp.net ×1
asp.net-mvc ×1
azure-ad-b2c ×1
c# ×1
database ×1
javascript ×1
json ×1
node.js ×1
oauth-2.0 ×1
pkce ×1
postman ×1
pug ×1
viewmodel ×1
webpack ×1