سلام من یه کلاس دارم که خود یکی از پارامترها لیستی از یک کلاس دیگر است
به صورت زیر است
public class InComee { public bool Manage_Access { get; set; } public Nullable<DateTime> StartDate { get; set; } public Nullable<DateTime> EndDate { get; set; } public string Value { get; set; } public List<BuildingIncome> lstIncome { get; set; } }
یه ویو هم از این ساختم که در ابتدا با مقادیر پیش فرض پر میکنم
public ActionResult Income() { try { dbCMSEntities d = new dbCMSEntities(); int id = 0; if (HttpContext.Application.Count > 0 && HttpContext.Application["build_id"] != null) id = (int)HttpContext.Application["build_id"]; var query = d.Income.Where(c => c.Income_BuidingId == id).ToList(); List<BuildingIncome> res = (from p in query select new BuildingIncome() { Date = p.Income_Date.Date, id = p.Income_Id, Amount = p.Income_Amount, DateString = p.Income_Date.ToPersianDateTime().ToString("yyyy/MM/dd"), Description = p.Income_Description, }).ToList(); InComee entity = new InComee(); entity.lstIncome = res; entity.Manage_Access = true; d.Dispose(); return View(entity); } catch (Exception) { return View(); } }
اینم ویوی من
@model CMScharge.Classes.Building.InComee @{ ViewBag.Title = "Income"; Layout = "~/Views/Shared/_BuildingLayout.cshtml"; } <div id="result"> @using (Ajax.BeginForm("Income", "Building", new { entity =Model}, new AjaxOptions { UpdateTargetId = "result", HttpMethod = "POST", OnSuccess = "success" })) { <h4>درآمدهای ساختمان</h4> @Html.AntiForgeryToken() @Html.ValidationSummary(true) <div class="form-horizontal"> <div class="form-group"> <div class="col-md-2"> <input type="submit" value="مشاهده" class="btn btn-default" name="btnResult" /> </div> <div class="col-md-2"> @(Html.Kendo().DropDownListFor(model => model.Value) .Name("Value") .DataTextField("Text") .DataValueField("Value") .BindTo(new List<SelectListItem>() { new SelectListItem() { Text = "نزولی", Value = "1" }, new SelectListItem() { Text = "صعودی", Value = "2" } }) .Value("1") ) </div> @Html.Label("به ترتیب :", new { @class = "col-md-1" }) <div class="col-md-2"> @Html.EditorFor(model => model.EndDate) </div> @Html.Label("لغایت :", new { @class = "col-md-1" }) <div class="col-md-2"> @Html.EditorFor(model => model.StartDate) </div> @Html.Label("از تاریخ :", new { @class = "col-md-1" }) </div> <div class="form-group"> @if (Model.Manage_Access) { <input type="submit" value="جدید" class="k-button k-primary cancel" name="btnResult" /> <input type="submit" value="گزارش" class="k-button k-primary" name="btnResult" /> } </div> <div class="form-group"> @(Html.Kendo().Grid<CMScharge.Classes.Building.BuildingIncome>(Model.lstIncome) .Name("gridd") .Columns(columns => { columns.Bound(p => p.Description).Title("بابت"); columns.Bound(p => p.DateString).Title("تاریخ"); columns.Bound(p => p.Amount).Title("مبلغ"); if (Model.Manage_Access) { columns.Template(x => { }).ClientTemplate("<input type='button' value='ویرایش' onclick='EditIncome(#=id#)' class='k-button k-grid-even' />"); columns.Command(command => { command.Destroy().HtmlAttributes(new { @class = "k-button k-button-icontext" }).Text("حذف"); }); } }) .Pageable(pageable => pageable .Messages(message => message.ItemsPerPage("تعداد آیتم در هر صفحه")) .Messages(message => message.Display("نمایش درآمدها {0} تا {1}. تعداد کل درآمدها :{2}")) .Refresh(true) .PageSizes(true) .ButtonCount(2) ) .Editable(editable => { editable.DisplayDeleteConfirmation("از حذف مطمئن هستید؟"); }) .Sortable() .DataSource(c => c .Ajax() .ServerOperation(false) .PageSize(10) .Events(events => events.Error("error_handler")) .Model(model => { model.Id(p => p.id); model.Field(p => p.id).Editable(false); }) .Destroy(update => update.Action("DeleteIncome", "Building")) ) ) </div> </div> } </div>
مشکلم اینه در اکشن income در حالت post اون entity خالی و null است علت چیه؟ من که در ابتدا پرش کردم
[HttpPost] public ActionResult Income(string btnResult, DateTime? StartDate, DateTime? EndDate, string Value, InComee entity,BuildingIncome lstIncome ,Income NewIncome) {
منظورم همون خط اول هست که entity متاسفانه null هست علت چیه؟
این لینک رو ببینید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)