我有一个具有MVC控制器和WepAPI 2控制器的Web服务。
MVC控制器的工作是为部分视图呈现和返回HTML。一个不同的MVC应用程序进行该调用,然后将生成的HTML嵌入到自己的页面中。
部分视图包含一些控件,这些控件调用WebAPI控制器来临时存储数据。为此,我在Global.asax.cs
:
protected void Application_PostAuthorizeRequest() {
HttpContext.Current.SetSessionStateBehavior(
System.Web.SessionState.SessionStateBehavior.Required);
}
当调用应用程序调用MVC控制器时,它会将模型传递给它。此模型包含一些初始数据,部分视图上的控件需要显示这些数据。这是控件使用WebAPI控制器创建/更新/删除的相同类型的数据。我想将模型中的数据放入会话中,以便局部视图中的控件能够读取/更新/删除此数据。
我的问题是:有没有办法让MVC控制器访问WepAPI会话?或者有没有办法让WebAPI控制器使用与MVC控制器使用相同的会话?
答案 0 :(得分:0)
在Global.asax中添加以下代码
{
"name": "UserType1",
"base": "User",
"idInjection": false,
"options": {
"validateUpsert": true
},
"ownerRelations": true,
"emailVerificationRequired": true,
"hidden": ["email", "emailVerified"],
"properties": {
"id": {
"type": "string",
"required": true,
"id": true
},
"firstName": {
"type": "string",
"required": true
},
"lastName": {
"type": "string",
"required": true
},
},
"validations": [],
"relations": {
"accessTokens": {
"type": "hasMany",
"model": "CustomAccessToken",
"polymorphic": {
"foreignKey": "userId",
"discriminator": "principalType"
},
"options": {
"disableInclude": true
},
"properties": {
"id": "myUserId"
}
}
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW",
"property": "create"
},
{
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW",
"property": "login"
}
],
"methods": {}
}