我了解如何在Web,Worker角色和MVC架构中的流程之间进行通信。
我的问题是,在我从Web角色的表中查询数据后,MVC中的控制器如何将这些数据显示在视图中?
我尝试在webrole中使用全局静态变量,其中数据被填充,但是当我从控制器访问静态变量时,它只返回'null'。为什么我得到一个空?
感谢。
答案 0 :(得分:0)
我们是在谈论一个应用程序,其MVC部分托管在一个辅助角色中,并从一个查询表存储的Web角色获取数据?或者我们在这里谈论一个以Web角色托管的ASP.NET MVC应用程序?
由于并发问题,静态变量根本不是一个好主意。
如果是方案1,您如何与Web角色进行通信?直接通过网络服务电话?
你只需从控制器调用服务或将调用委托给另一层,然后将这些数据放入模型中,然后由相应的视图显示。您是否尝试使用[azure local dev env] [1]
在本地调试此应用程序[1]:http://blogs.msdn.com/b/morebits/archive/2010/12/01/using-windows-azure-development-environment-essentials.aspx?或者你使用真正的天蓝色基础设施?您确定要从查询中获取数据吗?也许查询错了?你有什么例外吗?
我们需要更多信息才能为您提供帮助
答案 1 :(得分:0)
好的,如果你使用存储客户端,实现将是:
创建模型:
public class MyEntity : Microsoft.WindowsAzure.StorageClient.TableServiceEntity { public MyEntity() { PartitionKey = DateTime.UtcNow.ToString("MMddyyyy");RowKey = string.Format("{0:10}_{1}", DateTime.MaxValue.Ticks - DateTime.Now.Ticks, Guid.NewGuid()); } // Define the properties. public string Title { get; set; } public string Name { get; set; } }
}
2.定义上下文类:
{{1}}
public class MyDataContext : TableServiceContext { public MyDataContext(string baseAddress, StorageCredentials credentials) : base(baseAddress, credentials) { } public IQueryable GetMyEntity { get { return this.CreateQuery("MyTableName"); } } }
这只是参考代码,非常难看并且几乎不能正常工作,但它仍然提供了一个如何查询MVC项目中的表存储的示例。