将值从控制器传递到mvc5中的javascript

时间:2014-12-24 09:17:04

标签: javascript asp.net-mvc-5

我有一个mvc视图,需要显示twitter提要。所以我在我的视图中有从twitter生成的代码。这很好用。

为了扩展这一点,我想让它变得有点动态。即我想将data-widget-id="3831079557xxxx"硬编码到数据库表中的值。

以下是twitter生成的嵌入推文的javascript

<div class="row">
   <div class="col-md-12">
      <a class="twitter-timeline" href="https://twitter.com/xxxxx" 
          data-widget-id="3831079557xxxx">Tweets by xxxx</a>
              <script>!function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], p = /^http:/.test(d.location) ? 'http' : 'https'; if (!d.getElementById(id)) { js = d.createElement(s); js.id = id; js.src = p + "://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); } }(document, "script", "twitter-wjs");</script>



                </div>
            </div>

查看型号:

public class homeViewModel
{
    public List<news> newsA { get; set; }

    public List<Rss> feeds { get; set; }

    public List<HomepageSetting> hps { get; set; }

}

模型:这是我可以从中获取推特ID的类

public partial class HomepageSetting
    {
        public int Id { get; set; }
        //other properties
        public string Twitter { get; set; }

    }

控制器:

public ActionResult Index()
    {
        homeViewModel hvm = new homeViewModel();
        var data = (from p in db.HomepageSetting where p.ProfileID == Cuser.ProfileId select p);
                hvm.hps= data.ToList();
     return View(hvm);
     }

2 个答案:

答案 0 :(得分:3)

在控制器Index方法中,您可以使用ViewData Dictionary将id传递给视图:

ViewData["id"] = data.id //for example.

在视图中,您可以使用ViewData["id"]条目将其分配给data-widget-id属性。

<a class="twitter-timeline" href="https://twitter.com/xxxxx" 
          data-widget-id="<%: ViewData["id"] %>">Tweets by xxxx</a>

祝你好运

答案 1 :(得分:1)

您可以使用Razor Framework并拥有javascript

@foreach (var myItem in Request.ServerVariables)
{
    <a class="twitter-timeline" href="https://twitter.com/xxxxx" 
          data-widget-id="3831079557@myItem ">Tweets by xxxx</a>
}

我不能给你更多解释代码,因为这是我在MVC4上工作的东西。我不再使用Microsoft Framework,因此代码不能完全正常运行。

检查here以获取有关Razor Framework的更多信息。