【问题标题】:Using asp.net <%: %> syntax to generate javascript in an MVC application在 MVC 应用程序中使用 asp.net <%: %> 语法生成 javascript
【发布时间】:2010-08-10 21:02:35
【问题描述】:

我有一个 for 循环来遍历我的 SliderItems 列表,其中包含一个 ID、ImageUrl 和一个链接 Url。

<% foreach (var item in Model) { %>
    <a href="#"><img id="<%: item.ImageID %>" src="<%: item.ImageUrl %>" class="slide" alt="" /></a>
<%} %>

我需要以类似的方式自动循环并生成此 javascript 的数据参数,用我的 SliderItem.ID 替换“slide-img-#”

 <script type="text/javascript">
           if (!window.slider) var slider = {}; slider.data = [{ "id": "slide-img-1" }, { "id": "slide-img-2" }, { "id": "slide-img-3" }, { "id": "slide-img-4"}];
       </script>

最好的方法是什么?

【问题讨论】:

    标签: javascript html asp.net-mvc-2


    【解决方案1】:

    我个人喜欢用自己的视图生成所有 json 数据并进行异步调用,或者你可以这样做

     <script type="text/javascript">
      <%=Html.Action("thingie").ToString() %>
      </script>
    

    与控制器

    public ActionResult thingie()
        {
            var retVal = Json(new { blah = 1, foo = 2, bar = 3 }, JsonRequestBehavior.AllowGet);
            retVal.ContentType = "text/html";
            return retVal;
        }
    

    或者最简单的答案是完全按照您上面所做的那样做

     <script type="text/javascript">
           if (!window.slider) var slider = {};
            slider.data = [
               <% foreach (var item in Model) { %>
                     { "id": "slide-img-1" },
                <%} %>
                ];
       </script>
    

    【讨论】:

      猜你喜欢
      • 2014-10-15
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 2017-02-15
      • 2011-04-30
      • 1970-01-01
      相关资源
      最近更新 更多