Asp.net mvc 4 MVC4-如何在表行中使用提交按钮

Asp.net mvc 4 MVC4-如何在表行中使用提交按钮,asp.net-mvc-4,post,tablerow,Asp.net Mvc 4,Post,Tablerow,我有一个表,在每一行中我有一个提交按钮,我想通过HTTP POST提交该行的数据。我已经写了我的代码,但是表单没有呈现。我正在尝试渲染每一行,以便传递行值。我正在使用GridMVC渲染我的表 查看 @model Business.Models.Administration.StatsImerptsViewModel @using GridMvc.Html <h2>Application Stages portal</h2> <table>

我有一个表,在每一行中我有一个提交按钮,我想通过HTTP POST提交该行的数据。我已经写了我的代码,但是表单没有呈现。我正在尝试渲染每一行,以便传递行值。我正在使用GridMVC渲染我的表

查看

@model Business.Models.Administration.StatsImerptsViewModel
@using GridMvc.Html

    <h2>Application Stages portal</h2>

    <table>
        <tr>
            <td>
                IMechE Date:
            </td>
            <td>@Html.DropDownListFor(m => m.IMecheData, Model.ListOfYears)
            </td>
            <td>
                <input type="submit" value="View/Amend" />
            </td>
        </tr>
    </table>
    <br />

    <div id="grid-wrap" style="width: 500px;">
        @Html.Grid(Model.CouncilRegistrationReports).Named("ApplicationsGrid").Columns(columns =>
   {
       columns
  .Add()
  .Titled("Start Date")
  .Filterable(true)
  .Format("{0:dd/MM/yyyy}")
  .Encoded(false)
  .Sanitized(false)
  .SetWidth(30)
  .RenderValueAs(m =>

     @Html.TextBoxFor(t => m.StartDate, "{0:dd/MM/yyyy}", new { @class = "datepicker" })
  );
       columns
 .Add()
 .Titled("End Date")
 .Filterable(true)
 .Format("{0:dd/MM/yyyy}")
 .Encoded(false)
 .Sanitized(false)
 .SetWidth(30)
 .RenderValueAs(m =>

   @Html.TextBoxFor(t => m.EndDate, "{0:dd/MM/yyyy}", new { @class = "datepicker" })
 );

       columns
.Add()
.Titled("Date sent to EC")
.Filterable(true)
.Format("{0:dd/MM/yyyy}")
.Encoded(false)
.Sanitized(false)
.SetWidth(30)
.RenderValueAs(m =>

  @Html.TextBoxFor(t => m.ECDate, "{0:dd/MM/yyyy}", new { @class = "datepicker" })
);
       columns
.Add()
.Titled("CEng")
.Filterable(true)
.Encoded(false)
.Sanitized(false)
.SetWidth(30)
.RenderValueAs(m =>

@Html.TextBoxFor(t => m.CEng)
);
       columns
.Add()
.Titled("IEng")
.Filterable(true)
.Encoded(false)
.Sanitized(false)
.SetWidth(30)
.RenderValueAs(m =>

@Html.TextBoxFor(t => m.IEng)
);

       columns
.Add()
.Titled("EngTech")
.Filterable(true)
.Encoded(false)
.Sanitized(false)
.SetWidth(30)
.RenderValueAs(m =>

@Html.TextBoxFor(t => m.EngTech)
);
       columns
  .Add()
  .Encoded(false)
  .Sanitized(false)
  .SetWidth(30)
  .RenderValueAs(m =>

      @<b>
    @*  @Html.ActionLink("Update", "UpdateStatsImerpts", routeValues: new { Id = m.Id, StartDate = m.StartDate, EndDate = m.EndDate, ECDate = m.ECDate, CEng = m.CEng, IEng = m.IEng, EngTech = m.EngTech },
                               htmlAttributes: new { onclick = "", Id = m.Id })*@

                               @using (Html.BeginForm("StatsImerpts", "Administration", new { m = m }))
                               {
                                    <input type="submit" value="Update" />
                               }
      </b>
  );
       columns
       .Add()
       .Encoded(false)
       .Sanitized(false)
       .SetWidth(30)
       .RenderValueAs(m =>

           @<b> <a href="@Url.Action("DeleteStatsImerpts", "Administration", routeValues: new { Id = m.Id })" id="@m.Id">
               <img src="../../Images/delete.gif" alt="Delete" />
           </a></b>
  );

   }).WithPaging(50)
    </div>

    <script>
        $(function () {
            $(".datepicker").datepicker({
                changeMonth: true,
                changeYear: true
            });
        });
    </script>
@model Business.Models.Administration.StatsImerptsViewModel
@使用GridMvc.Html
应用程序阶段门户
IMechE日期:
@DropDownListFor(m=>m.IMecheData,Model.ListOfYears)

@Html.Grid(Model.CouncilRegistrationReports).Named(“ApplicationGrid”).Columns(Columns=> { 柱 .Add() .标题为(“开始日期”) .可过滤(真) .Format(“{0:dd/MM/yyyy}”) .编码(假) .消毒(假) .SetWidth(30) .RenderValueAs(m=> @Html.TextBoxFor(t=>m.StartDate,“{0:dd/MM/yyyy}”,new{@class=“datepicker”}) ); 柱 .Add() .标题为(“结束日期”) .可过滤(真) .Format(“{0:dd/MM/yyyy}”) .编码(假) .消毒(假) .SetWidth(30) .RenderValueAs(m=> @Html.TextBoxFor(t=>m.EndDate,“{0:dd/MM/yyyyy}”,new{@class=“datepicker”}) ); 柱 .Add() .标题为(“发送给EC的日期”) .可过滤(真) .Format(“{0:dd/MM/yyyy}”) .编码(假) .消毒(假) .SetWidth(30) .RenderValueAs(m=> @(t=>m.ECDate,“{0:dd/MM/yyyy}”,new{@class=“datepicker”}) ); 柱 .Add() .标题为“曾” .可过滤(真) .编码(假) .消毒(假) .SetWidth(30) .RenderValueAs(m=> @Html.TextBoxFor(t=>m.CEng) ); 柱 .Add() .标题为(“IEng”) .可过滤(真) .编码(假) .消毒(假) .SetWidth(30) .RenderValueAs(m=> @Html.TextBoxFor(t=>m.IEng) ); 柱 .Add() .标题为(“工程技术”) .可过滤(真) .编码(假) .消毒(假) .SetWidth(30) .RenderValueAs(m=> @Html.TextBoxFor(t=>m.EngTech) ); 柱 .Add() .编码(假) .消毒(假) .SetWidth(30) .RenderValueAs(m=> @ @*@Html.ActionLink(“Update”,“updateStatTimerpts”,routeValue:new{Id=m.Id,StartDate=m.StartDate,EndDate=m.EndDate,ECDate=m.ECDate,CEng=m.CEng,IEng=m.IEng,EngTech=m.EngTech}, htmlAttributes:new{onclick=”“,Id=m.Id})*@ @使用(Html.BeginForm(“StatsImerpts”,“Administration”,new{m=m})) { } ); 柱 .Add() .编码(假) .消毒(假) .SetWidth(30) .RenderValueAs(m=> @ ); }).带传呼(50) $(函数(){ $(“.datepicker”).datepicker({ 变化月:对, 变化年:对 }); });
HTML,我正在尝试使用HTML.beginForm()

@Html.TextBoxFor(t=>m.EngTech)
);
柱
.Add()
.编码(假)
.消毒(假)
.SetWidth(30)
.RenderValueAs(m=>
@
@*@Html.ActionLink(“Update”,“updateStatTimerpts”,routeValue:new{Id=m.Id,StartDate=m.StartDate,EndDate=m.EndDate,ECDate=m.ECDate,CEng=m.CEng,IEng=m.IEng,EngTech=m.EngTech},
htmlAttributes:new{onclick=”“,Id=m.Id})*@
@使用(Html.BeginForm(“StatsImerpts”,“Administration”,new{m=m}))
{
}
))


以前有人试过这样做吗?我知道我可以使用javascript并将行的所有值传递给函数,但如果我可以只做一个POST并传递行值,我认为这会更简单。

我不熟悉GridMvc,但我以前也为购物车做过类似的事情(更新数量或删除项目)最后,我使用javascript将行Id和新数量发布到控制器中的操作


编辑:查看如何使用AJAX发布文章,看看会出现什么。有许多类似的例子可能会有所帮助。另外,请参阅本文,特别是使用XMLHttpRequest的示例。

嘿,我正在使用这个网格。我想尝试使用submit按钮,但如果不可能,我会编写JS。如果你对JS很在行,并且更关心演示,那么你可以添加一个通用的JS post函数,每行都可以有一个更新按钮(按你喜欢的格式),用OnClick调用JS
@Html.TextBoxFor(t => m.EngTech)
);
       columns
  .Add()
  .Encoded(false)
  .Sanitized(false)
  .SetWidth(30)
  .RenderValueAs(m =>

      @<b>
    @*  @Html.ActionLink("Update", "UpdateStatsImerpts", routeValues: new { Id = m.Id, StartDate = m.StartDate, EndDate = m.EndDate, ECDate = m.ECDate, CEng = m.CEng, IEng = m.IEng, EngTech = m.EngTech },
                               htmlAttributes: new { onclick = "", Id = m.Id })*@
                           @using (Html.BeginForm("StatsImerpts", "Administration", new { m = m }))
                           {
                                <input type="submit" value="Update" />
                           }
  </b>