【问题标题】:How I can get data from table in MVC如何从 MVC 中的表中获取数据
【发布时间】:2016-03-22 06:08:22
【问题描述】:

我有 aspx 页面。我在表格中显示数据。如何从 Controller 中的此表中获取新值。或者如何在 mvc 的 aspx 页面中生成网格/表格的另一种方法?

    <table id="Products" class="Products">
      <tr>
        <th>ProductId</th>
        <th>Productname</th>
        <th>Quantity</th>
        <th>UnitPrice</th>
    </tr>
    <% foreach (var item in Model.NorthOrderDetails)
       {
           %>
            <tr>
        <td><%: item.ProductID %></td>
        <td><%: item.ProductName %></td>
        <td><%: Html.TextBox("Quantity",item.Quantity) %></td>
        <td><%: Html.TextBox("UnitPrice",item.UnitPrice) %></td>
        <td> <%: Html.ActionLink("Update", "View2") %></td>
    </tr>
    <% } %>
</table>

【问题讨论】:

  • 您需要一个for 循环(不是foreach 循环)-for(int i = 0; i &lt; Model.NorthOrderDetails.Count; i++) { @Html.TextBoxFor(m =&gt; m.NorthOrderDetails[i].Quantity) .....} 以便控件使用索引器正确命名,并且可以在回发时绑定到您的集合
  • @StephenMuecke.好的,谢谢。以及如何将新值发送到控制器中的方法 View2,如果我有这个方法并且它显示了这个表?
  • 您的意思是在视图中动态添加新项目吗?
  • 没有。更新文本框中的值
  • 如果您使用for 循环,正如我所展示的,并且您回发模型,它将被正确绑定。您没有显示任何控制器方法或模型,因此如果它不工作,很难看出您可能做错了什么

标签: c# asp.net-mvc asp.net-mvc-4


【解决方案1】:

表格应该用表格包裹起来。每个文本框都应该有一个唯一的 'id' 属性。这可以通过对代码进行一些简单的更改来完成。

类似这样的:

<form>
<table id="Products" class="Products">
  <tr>
    <th>ProductId</th>
    <th>Productname</th>
    <th>Quantity</th>
    <th>UnitPrice</th>
</tr>
<% foreach (var item in Model.NorthOrderDetails)
   {
       %>
        <tr>
    <td><%: item.ProductID %></td>
    <td><%: item.ProductName %></td>
    <td><%: Html.TextBoxFor(m => item.Quantity) %></td>
    <td><%: Html.TextBoxFor(m => item.UnitPrice) %></td>
</tr>
<% } %>
</table>
<button type="submit">Update</button>
</form>

如果这有帮助,请告诉我们!

【讨论】:

  • 它有帮助。我找到了另一种语法,但它也是正确的
  • 另一个不错的选择(如果您熟悉 Javascript)是使用名为 Knockout.js 的库。它使绑定到客户端的数据变得非常容易。你可以在这里看到一些例子:knockoutjs.com/examples/helloWorld.html
  • 我需要写没有js的代码。你知道我如何在没有 js 和 table 的情况下创建网格吗?
  • 有些人喜欢它,有些人讨厌它,但是 Bootstrap 提供了开箱即用的网格系统,这使得构建响应式数据网格变得非常容易。但是为什么你不想使用 HTML 表格呢?如果它是表格数据,那么表格是一种可接受的方式。
  • 如果一个表可以使用,那么你的方法是可以的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-05
  • 2018-05-16
  • 2017-07-11
  • 1970-01-01
  • 1970-01-01
  • 2013-01-08
  • 1970-01-01
相关资源
最近更新 更多