【问题标题】:Pass Table Value from View to Controller MVC将表值从视图传递到控制器 MVC
【发布时间】:2015-01-12 06:04:51
【问题描述】:

我可以将表 td 值传递给控制器​​吗?

查看强类型:

@using (Html.BeginForm("PostClick", "Vendor", FormMethod.Post)) {
<table class="tblData">
  <tr>
    <th>
      @Html.DisplayNameFor(model => model.First().SubmittedDate)
    </th>
    <th>
      @Html.DisplayNameFor(model => model.First().StartDate)
    </th>
  </tr>

  <tr>
    <td>
      @Html.DisplayFor(modelItem => item.SubmittedDate)
    </td>
    <td>
      @Html.DisplayFor(modelItem => item.StartDate)
    </td>
   </tr>
 </table>
 <input type="submit" value="submit" />
    }

控制器代码:

public void PostClick(FormCollection collection)
{
   /*Some Code */
} 

如何将表值从视图传递到控制器?

已使用 JasonData 和 Ajax 调用并能够将表数据发送到控制器。

想知道任何其他方法可以做到,因为FormCollection数据无法找到表值

【问题讨论】:

  • @Html.DisplayFor() 不会创建回发控件。您需要生成 inputtextareaselect 元素 - 例如使用@Html.TextBoxFor()。而您使用model.First().SubmittedDate 的事实表明您有一个集合,这意味着您需要在for 循环中生成每个表行。你应该通过回发你的模型来利用 MVC 的模型绑定特性(不使用FormCollection
  • 感谢斯蒂芬。是的,将 FormCollection 替换为 EnityClass public void PostClick(List Vendor) { } 。但 List Vendor 对象显示为空。上面的 Context 可以用 DisplayFor() 代替什么来实现 Vendor 列表中的结果。
  • 使用 Vender 而不是 List&lt;Vendor&gt; 它是单个对象而不是集合
  • 您的模型在视图@model List&lt;Vendor&gt; 中吗?在这种情况下,您需要for(int i = 0; i &lt; Model.Count; i++){ @Html.TextBoxFor(m =&gt; m[i].SubmittedDate) ..... }
  • 谢谢大家的回复。是的用于循环。数据在 View 正确显示。必须将表值从视图传递到控制器。这是现在的实际问题????

标签: asp.net-mvc razorengine


【解决方案1】:

您需要生成回发控件(inputtextareaselect)并在 for 循环中生成这些控件(或使用自定义 EditorTemplate 类型为 Vendor

查看

@model List<Vendor>
@using (Html.BeginForm())
{
  <table class="tblData">
    <thead>
      ....
    </thead>
    <tbody>
      for(int i = 0; i < Model.Count; i++)
      {
        <tr>
          <td>@Html.TextBoxFor(m => m[i].SubmittedDate)</td>
          <td>@Html.TextBoxFor(m => m[i].StartDate)</td>
        </tr>
      }
    </tbody>
  </table>
  <input type="submit" value="submit" />
}

发布方法

public void PostClick(List<Vendor> model)
{
  /*Some Code */
} 

【讨论】:

  • @M.FawadSurosh,如果您遇到问题,请使用相关代码提出新问题(我猜不出您犯了什么错误)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-28
  • 2012-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多