我在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> 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)
不包含任何数据!