0

考虑这个用例。

我有一个表(<table>),它使用户能够输入在给定的一周内花费在给定项目上的时间。

例如。

--------------------------------------
|Project ID: | Monday | Tuesday | ...|
|   123      | 7:15   |   3:45  | ...|
|   124      | 1:15   |   0:45  | ...|
|   125      | 0:00   |   0:00  | ...|

然后,我需要在用户输入所有这些行后回发它们。我之前做过类似的事情,在这里我有单独的表单来描述每一行,然后用 jQuery 遍历它们,以构建一个 JSON 对象,将它们作为一个数组包含在内。

每行的结构:

<tr>
   <form name="RowData">
       <input type="hidden" Name="ProjectID" value="123" />
       <input type="hidden" Name="Monday" value="..." />
       <input type="hidden" Name="Tuesday" value="..." />
   </form>
   <td></td> <!-- Containing the text input and so forth -->
   <td></td>
   <td></td>
</tr>

回发结构:

json:{
     rows:[
          {
          ProjectID: 123, 
          Monday: '7:15',
          Tuesday:'3:45', // etc...
          },
          {
          ProjectID: 124, 
          Monday: '1:15',
          Tuesday:'0:45'
          }, // etc...
     ]

}

*请注意,这并不是我将如何发送数据的实际表示,而只是一个让您了解我的思维方式的结构*

但我觉得必须有更好更直观的方法来做到这一点。在 HTML 或 Javascript 中存储复杂的结构,以便通过 AJAX 更轻松地回发。

我将其存储在 Javascript 中的问题是使其与页面和用户看到的内容保持同步。

如果你们中的一些人有更好的方法,请告诉我,并可能详细解释它是如何工作的,以及为什么它是更好的方法。

4

1 回答 1

1

你好你可以试试http://knockoutjs.com/

如果你想要你也可以使用它,我在 MVC 中使用了一个简单的技巧。

<script>
    var dataMap = {};
</script>
@foreach(var item in Model.Urmodel) {
 <tr data-id="@item.Id"> ... etc </tr>
 <script>
dataMap['@item.Id'] = @Json(item); // you'd have to make a Html helper to do this
</script>
}
于 2013-07-12T10:27:52.187 回答