【问题标题】:How to pass variable in model to view?如何将模型中的变量传递给视图?
【发布时间】:2015-12-23 11:38:28
【问题描述】:

这是我模型中的代码,我想在视图中使用变量 lat。有没有办法在那里使用它?

字符串有 lat 和 lng。我想要发生的是,当在文本中选择字符串时,也选择了 lat 和 lng,但它将存储在变量中,我将在视图中使用它并将其传递给脚本,以便在其中查看它谷歌地图API。

 public IEnumerable<String> GetStartList()
            {
                //int count = 0;
                var result = new List<String>(10);
                string query = "SELECT PlaceName, Lat, Lng from Places";
                SqlCommand cmd = new SqlCommand(query, con);
                con.Open();
                using (SqlDataReader dr = cmd.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        var mystring = dr.GetString(0);
                        var lat = dr.GetDouble(1);
                        result.Add(mystring);
                        //result.Add(lat.ToString());
                        //count++;

                    }
                }
                con.Close();
                return result;
            }

【问题讨论】:

  • 您可以将 Lat 设为属性,然后使用 WPF 中的绑定将控件绑定到 Lat 属性。
  • 我该怎么做?通过使用存储过程?对不起,我真的很陌生
  • 查看我对这个问题的回答。在您的情况下,您不需要转换器。您只需将 lat 保存到一个属性并使用 XAML stackoverflow.com/questions/32769120/… 绑定该属性

标签: c# model-view-controller view model


【解决方案1】:
  • 在行动

        int model = 0;
        return View(model);
    
  • 在视图中

    @model 整数 @{ //布局=空; } @if(模型 == 0) { //你的代码 }

【讨论】:

    【解决方案2】:

    数据查询应位于单独的存储库中。

    但是,如果您只传回两个字符串,请将它们都添加到父列表中

    IList<IList> model = new List<IList>();
    //code to get lat and result
    model.add(result);
    model.add(lat);
    return View(model);
    

    然后在 View 中,使用 Razor 解析模型。

    @model List<IList>
    //... body before using model
    @foreach (var lat in model[1]) { ... }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-10
      • 1970-01-01
      • 2011-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      相关资源
      最近更新 更多