我看了所以,也有類似的問題,但我想回發一個模型集合,但是當我按下我的提交按鈕它抱怨說我的模型一片空白。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