从webrole接收MVC控制器中的数据

时间:2012-03-30 06:20:08

标签: asp.net-mvc-3 model-view-controller azure azure-web-roles

我了解如何在Web,Worker角色和MVC架构中的流程之间进行通信。

我的问题是,在我从Web角色的表中查询数据后,MVC中的控制器如何将这些数据显示在视图中?

我尝试在webrole中使用全局静态变量,其中数据被填充,但是当我从控制器访问静态变量时,它只返回'null'。为什么我得到一个空?

感谢。

2 个答案:

答案 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)

好的,如果你使用存储客户端,实现将是:

  1. 创建模型:

        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.  2.定义上下文类:

    {{1}}
    1. 实施控制器操作方法:
    2. 
      
           public class MyDataContext : TableServiceContext
              {
                  public MyDataContext(string baseAddress,
                      StorageCredentials credentials)
                      : base(baseAddress, credentials)
                  { }
      
                  public IQueryable GetMyEntity
                  {
                      get
                      {
                          return this.CreateQuery("MyTableName");
                      }
                  }
              }
      
      

      这只是参考代码,非常难看并且几乎不能正常工作,但它仍然提供了一个如何查询MVC项目中的表存储的示例。