繁体   English   中英

使用SPARK在ASP.NET MVC2中使用部分视图维护索引值

[英]Maintaining Index Value with Partial Views in ASP.NET MVC2 using SPARK

我正在寻找一种使用SPARK视图引擎遍历ASP.net MVC 2中的项目时保存索引信息的方法。 我经常有一个局部视图,它遍历项目和一个添加新项目的按钮。

我想在显示现有项目后保存索引,然后将其传递回相同的局部视图以创建和显示新项目。

例如:

  <div class="small">Enter the rooms associated with this facility.</div>
  <div class="add">
    <div id="rooms">
      <AddRoom each="var roomModel in Model.FacilityRooms"
               RoomModel="roomModel" Index="roomModelIndex" />
    </div>
    <div class="add">
      <a id="addRoom" class="add" href="events/room/add.mvc">Add a room</a>
    </div>
  </div>
  <p>
    <input type="submit" value="Submit" />
  </p>
</form>

理想情况下,我想从AddRoom循环中保存索引,并将其用于“添加房间”按钮,该按钮将使用空白房间对象再次调用AddRoom视图。

我试过利用Javascript和SPARK变量,但似乎找不到一种很好的方法。 有什么建议么?

干杯!

我自己用我使用的方法回答了这个问题,但是我敢肯定还有更好的方法。

这是我所做的:

  1. 在视图中创建一个Javascript变量设置为Rooms数组的大小

    var roomIndex = $ {Model.FacilityRooms.Count};
  2. 在附加到“添加房间”按钮的Javascript函数中增加此变量。 这样,只要单击“添加”,索引就会增加。

     $('#addRoom').click(function () { var a = $(this); a.addClass('loading'); $.ajax({ url: a.attr('href') + '?roomIndex=' + roomIndex++, cache: false, success: function (html) { $('#rooms').append(html); a.removeClass('loading'); } }); return false; 

    });

  3. javascript将索引附加到“添加”按钮的URL,因此索引被传递到“添加”按钮的控制器中。 然后,我们将其设置为将其分配给“索引” ViewData元素,以便我们可以使用同一视图而不会出现任何问题。

     [HttpGet] public ViewResult Add(int roomIndex) { ViewData["RoomModel"] = new EditFacilityRoomDto(); ViewData["Index"] = roomIndex; return View(); } 

在视图中,我们不需要更改其他任何内容(除了在#1中添加JavaScript变量)。

有一种方法。 不知道是否还有更好的方法。

干杯。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM