我看了所以,也有类似的问题,但我想回发一个模型集合,但是当我按下我的提交按钮它抱怨说我的模型一片空白。MVC 4 - null模型当试图发布一个模型集合
我有这种说法在我的应用程序
查看
@model List<Business.Models.Applications.ApplicantViewModel>
@using GridMvc.Html
@using (Html.BeginForm("AllocateFirst", "Application", FormMethod.Post))
{
<div id="grid-wrap" style="width: 500px;">
Allocate Application
<div id="SystemMsg">
</div>
@Html.Grid(Model).Named("FirstStageGrid").Columns(columns =>
{
columns.Add(m => m.Id);
columns.Add(m => m.MembershipNumber).Titled("Membership number");
columns.Add(m => m.DateReceived).Titled("Registered date");
columns.Add(m => m.Fullname).Titled("Name").Filterable(true).Encoded(false);
columns.Add(m => m.ApplicationType).Encoded(false).Sanitized(false);
columns.Add(m => m.AssignedStaffMem).Encoded(false).Sanitized(false).RenderValueAs(m =>
@<b>
@Html.DropDownList("ddlStaff", new SelectList(Model.First().ListOfStaff, "UserId", "Fullname"))
</b>
);
columns
.Add()
.Encoded(false)
.Titled("Action")
.Sanitized(false)
.SetWidth(30)
.RenderValueAs(m =>
@<b> <a href="#" onclick="AssignStaff(@m.Id, @Html.Raw("\"") @m.Fullname.Trim() @Html.Raw("\""), @m.Id)">
Assign</a> </b>
);
}).WithPaging(5)
<br />
Assign on bulk: @Html.CheckBox("AssignOnBulk")
<br />
<div id="bulkAssign">
Assign to: @Html.DropDownList("ddlStaff", new SelectList(Model.First().ListOfStaff, "UserId", "Fullname"))
@Html.Hidden("hdnStaffId")
<input type="submit" value="Submit all on bulk" />
</div>
</div>
<script>
$('#AssignOnBulk').on('change', function() {
if ($(this).is(':checked')) {
$("#bulkAssign").show();
var staffId = $('#ddlStaff').val(); //no :selected here
}
else {
$("#bulkAssign").hide();
$("hdnStaffId").val(this);
var staffId = $('#ddlStaff').val(); //no :selected here
}
});
$('#ddlStaff').change(function() {
var staffId = $('#ddlStaff').val(); //no :selected here
});
$(document).ready(function() {
if ($(AssignOnBulk).is(':checked'))
$("#bulkAssign").show();
else
$("#bulkAssign").hide();
});
function AssignStaff(appId, fullName) {
//Get row based on Id of grid
var tableRow = $("td").filter(function() {
return $(this).text() == appId;
}).closest("tr");
// get staffId based on option selected in tr
var staffId = $(tableRow).find('option:selected').val();
$.ajax({
type: "GET",
url: '/Application/SetFirstCheck',
dataType: 'html',
data: { "staffId": staffId, "appId": appId },
success: function (success) {
$('#SystemMsg').html(success);
$(tableRow).remove();
}
});
}
</script>
}
我所试图做的是,如果用户检查该复选框
Assign on bulk: @Html.CheckBox("AssignOnBulk")
与按钮的div会显示下拉菜单,用户可以决定将一个人分配给网格中的所有人员,而不是使用操作链接。
我想要做的是按下发布按钮,并从下拉菜单中发回集合加上staffId。但是当我按帖子时,VS2012突出显示了我的网格,并说模型为空。
控制方法
[HttpPost]
public ActionResult AllocateFirst(List<Business.Models.Applications.ApplicantViewModel> Model, bool AssignOnBulk, string ddlStaff)
{
return View(Model);
}
我已经连接的,当我点击后会发生什么的截图,它强调了我的整个网格。
你可以发布你的应用程序视图模型代码 – Amit
尝试@model的IEnumerable –
Amit