0

我是 mvc 和 javascript 的新手。起初我使用 javascript 在 divsion 中应用 parital 视图

$('.btngo').click(function (e) {
        var fid = $('#FiscalYear_FYId').val();
      alert($('#FiscalYear_FYId').val());
        $.ajax({
            type: 'Get',
            url: '@Url.Action("RateList", "Rate")',
            data: { fyid: fid },
            success: function (sc) {
                $('#Ratelist').html(sc);

            }
        });
    });

部分视图是模型 FHIControl.Model.StationeryRate.RateDTO,它包含一个提交按钮,我的视图看起来像

@using (Html.BeginForm("Ratelist", "Rate", FormMethod.Post))
{
    @Html.ValidationSummary(true)

    <table>
    <thead>
    <tr>
    <th>Item Id</th>
    <th>Item Name</th>
    <th>Rate</th>

    </tr>
    </thead>

   @Html.HiddenFor(x=>Model.FiscalYear.FYId)
     @foreach (var item in Model.RateList)
      {
        <tr>
             @Html.HiddenFor(x => item.ItemId)
         <td>@{count++;}@count</td>
        <td>@Html.DisplayFor(x => item.ItemName)</td>
        <td>@Html.TextBoxFor(x => item.Rate)</td>
        </tr>
      }


</table>
        <p>
            <input type="submit" value="Ok" id="btnsubmit" />
        </p>
}

按钮提交是提交表单但没有模型项目。为什么会这样?有什么办法可以使这个工作?

4

1 回答 1

0

没有模型项,因为您只传递 的值FiscalYear_FYId

    var fid = $('#FiscalYear_FYId').val();
    $.ajax({
        data: { fyid: fid },                    
    });

应该是:

    $.ajax({
        data: $form.serialize(),            
    });

哪里$form是对您的表格的引用。您可以为更快和更好的参考命名,也可以像这样引用它:

    var $form = $("#btnsubmit").parents('form');
于 2013-03-28T10:45:11.897 回答