ViewData和ViewBag允许您访问从控制器传递的视图中的任何数据.
这两者之间的主要区别在于您访问数据的方式.在ViewBag中,您使用字符串作为键访问数据 - ViewBag ["numbers"]在ViewData中,您使用属性访问数据 - ViewData.numbers.
ViewData示例
CONTROLLER
var Numbers = new List<int> { 1, 2, 3 };
ViewData["numbers"] = Numbers;
Run Code Online (Sandbox Code Playgroud)
视图
<ul>
@foreach (var number in (List<int>)ViewData["numbers"])
{
<li>@number</li>
}
</ul>
Run Code Online (Sandbox Code Playgroud)
ViewBag示例
CONTROLLER
var Numbers = new List<int> { 1, 2, 3 };
ViewBag.numbers = Numbers;
Run Code Online (Sandbox Code Playgroud)
视图
<ul>
@foreach (var number in ViewBag.numbers)
{
<li>@number</li>
}
</ul>
Run Code Online (Sandbox Code Playgroud)
Session是另一个非常有用的对象,可以保存任何信息.
例如,当用户登录到系统时,您希望保持其授权级别.
// GetUserAuthorizationLevel - some method that returns int value for user authorization level.
Session["AuthorizationLevel"] = GetUserAuthorizationLevel(userID); …Run Code Online (Sandbox Code Playgroud) 我在 ses.SendEmail 方法中面临一个奇怪的问题。当我使用测试数据时,一切都会按预期工作,并且电子邮件会发送给我,但是当在 dynamoDB 中添加新条目来触发将发送电子邮件的 lambda 函数时,我得到一个异常:
\nInvalidParameterValue:域包含控件或空格\nat Request.extractError (/var/runtime/node_modules/aws-sdk/lib/protocol/query.js:50:29)\nat Request.callListeners (/var/runtime/node_modules/aws) -sdk/lib/sequential_executor.js:106:20)\nat Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)\nat Request.emit (/var/runtime /node_modules/aws-sdk/lib/request.js:688:14)\nat Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)\nat AcceptorStateMachine.runTo ( /var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)\nat /var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10\nat 请求。(/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)\nat 请求。(/var/runtime/node_modules/aws-sdk/lib/request.js:690:12)\nat Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:116:18) { \n代码: 'InvalidParameterValue',\n时间: 2020-08-28T13:09:31.549Z,\nrequestId: '233eb2c8-9097-4aab-884f-ecd20260a473',\nstatusCode: 400,\n可重试: false,\nretryDelay: 38.70417411 485463 \n}
\nconsole.log('Loading function');\nvar aws = require('aws-sdk');\nvar ses = new aws.SES({region: 'eu-west-2'});\n\nexports.handler = (event, context) => {\n //console.log('Received event:', JSON.stringify(event, null, 2));\n event.Records.forEach((record) => {\n if(record.eventName == 'INSERT')\n {\n console.log(record.eventID);\n console.log(record.eventName);\n console.log('DynamoDB Record: %j', record.dynamodb);\n \n console.log(record.dynamodb.NewImage.email.S);\n \n var email …Run Code Online (Sandbox Code Playgroud) 我有一个这样定义的模式:
"permissions": {
"type": "array",
"properties": {
"items":
{
"$ref": "#/definitions/permissionsType"
}
}
},
Run Code Online (Sandbox Code Playgroud)
和权限类型:
"permissionsType": {
"type": "string",
"pattern": "^[a-zA-Z0-9]+(:[a-zA-Z0-9][a-zA-Z0-9-]+)+$"
},
Run Code Online (Sandbox Code Playgroud)
...
我不确定为什么模式正则表达式被忽略。