提交的Ajax表单不包含任何数据:ASP.NET MVC

时间:2015-07-05 08:39:07

标签: jquery asp.net ajax asp.net-mvc asp.net-mvc-4

我在Home视图中使用Partial View将视图模型发布到Partial中。 我尝试使用Ajax.beginform使用ajax提交我的数据,但是当我提交表单时,我的Action中的Model不包含任何数据。我这样做了:

1)创建我的视图并创建一个局部并在我的视图中调用局部谎言:

@{Html.RenderPartial("/partials/objects/_Partial_Poll.cshtml", Poll);}

Poll是我的ObjectModel,我填充了它的属性。

2)我像这样定义我的Partial:

@model ObjectModel.Poll
@{
Layout = null;
int counter = 0;
}
<script src="/Content/Templates/Main/fa-ir/Files/js/jquery-1.11.2.min.js"     type="text/javascript"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js" type="text/javascript">    </script>

<aside class="p-box p-tablerow">
<div class="p-head"><span class="fa fa-bar-chart-o"></span>&nbsp; poll     </div>
<table cellspacing="0" id="pollfrm">
    <tbody>
        <tr>
            <td colspan="3">@Model.Title</td>
        </tr>

@using (Ajax.BeginForm("_SavePoll","Poll",new AjaxOptions { UpdateTargetId = "pollfrm" }))
{
@Html.AntiForgeryToken()
        foreach (var item in Model.PollReplies)
        {
            counter++;
            <tr>
                <td>@counter</td>
                <td>@item.Title</td>
                <td>
                    @Html.RadioButton("PollRep", item.ID, item.IsChecked)
                </td>
            </tr>
        }
        <tr>
            <td colspan="3"><input type="submit" value="submit" /></td>
        </tr>
}
    </tbody>
</table>
</aside>

<script>
$(function () {

    $('form').submit(function () {
        if ($(this).valid()) {
            alert(this.action);
            $.ajax({
                url: this.action,
                type: this.method,
                data: $(this).serialize(),
                success: function (result) {
                    $('#pollfrm').html(result);
                }
            });
        }
        return false;
    });
});
</script>

3)我这样定义我的行动:

[Route("_SavePoll")]
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult _SavePoll(ObjectModel.Poll _poll) 
{
   return Content("Thanks", "text/html");
}

4)

public Poll() {
    {
        PollReplies = new List<PollReply>();
    }
    public int ID { get; set; }
    public string Title { get; set; }
    public List<PollReply> PollReplies { get; set; }
}

这是我的民意调查对象模型。

public class PollReply
{
    public int ID { get; set; }
    public int Poll_ID { get; set; }
    public string Title { get; set; }
    public int Count { get; set; }
    public bool IsChecked { get; set; }
}

这是我的PollReply对象模型,它与Poll Object模型有关。

当我运行我的项目并选择一个radiobutton并提交表格时,evrything运行良好,但_poll in

public ActionResult _SavePoll(ObjectModel.Poll _poll) 

不包含任何数据!

0 个答案:

没有答案