.net mvc 视图提交list表单 后端action接收list表单
直接上代码
重要代码为红色部分;
视图代码如下:
@using DFCrm.UI.Web.Model @using DFCrm.Domain.Entities.Bases @using DFCrm.Domain.Entities.KpiBases @using DFCrm.Infrastructure.Tokens @using DFCrm.Domain.Entities.DepartmentPositions @model List<KpiBaseTeam> @{ ViewBag.Title = "设置班级业绩指标"; ViewBag.Column = "基地"; Layout = "~/Views/Shared/_HomeLayout.cshtml"; EmployeeToken token = ViewBag.Token; List<PermissionOperationEnum> permissions = ViewBag.Permissions; List<Base> bases = ViewBag.Bases; //List<KpiBaseTeam> kpibaseTeams = ViewBag.KpiBaseTeams; //#region 修改处理 //if (Model.Count>0&& Model[0].Team!=null&& Model[0].Team.BaseId > 0) //{ // //基地 // if (!bases.Contains(Model[0].Team.Base)) // { // bases.Add(Model[0].Team.Base); // } //} //#endregion string fromUrl = !string.IsNullOrEmpty(Request.QueryString["fromUrl"]) ? Request.QueryString["fromUrl"] : Request.UrlReferrer != null ? Request.UrlReferrer.ToString() : null; string thisUrl = Request.Url != null ? Request.Url.ToString() : null; } <script type="text/javascript"> $(document).ready(function (e) { selectedMenuWithPath(e, "/KpiBaseTeam"); $("#btnClickCheck").click(function () { var baseId = $("#baseId").val(); if (baseId == null || baseId == "" || baseId == 0) { alert("请选择基地") return false; } }); }); script> <script> function setDate(num) { //当前日期 var d = new Date(); //alert(d.toLocaleDateString()) //月初 var f = d.setDate(1); f = new Date(f); f = f.setMonth(num); f = new Date(f); //alert(f.toLocaleDateString()); $("#startDate").val(f.format("yyyy-MM-dd")); //月末 var e = d.setDate(1); e = new Date(e); e = e.setMonth(num); e = new Date(e); e = e.setMonth(e.getMonth() + 1) - 24 * 60 * 60 * 1000; e = new Date(e); //alert(e.toLocaleDateString()); $("#endDate").val(e.format("yyyy-MM-dd")); } Date.prototype.format = function (fmt) { var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); } for (var k in o) { if (new RegExp("(" + k + ")").test(fmt)) { fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); } } return fmt; } function OnLoadTeam() { var baseId = $("#baseId").val(); $.ajax({ type: "GET", url: "/KpiBaseTeam/GetTeams?baseId=" + baseId, dataType: "json", success: function (data) { console.log(data); $("#KpiContents").empty(); for (var i = 0; i < data.length; i++) { $("#KpiContents").append(""); } } }); } script> <div class="row"> <div class="col-md-12"> @if (!string.IsNullOrEmpty(fromUrl) && fromUrl != thisUrl) { <a href="@fromUrl" class="btn btn-info"><i class="fa fa-chevron-left">i> 返回a> } else { <a href="@Url.Action("Index", "KpiBaseTeam")" class="btn btn-info"><i class="fa fa-chevron-left">i> 返回a> } div> <div class="col-md-12"> @using (Html.BeginForm("Detail", "KpiBaseTeam", new { fromUrl = fromUrl }, FormMethod.Post, new { enctype = "multipart/form-data" })) { <div class="panel panel-body bk-bg-white"> <div class="form-group"> <h3>设置基地班级业绩指标h3> div> <div class="form-group"> <label for="baseId">基地:label> <select id="baseId" name="Model[0].Team.baseId" class="form-control" onchange="OnLoadTeam()"> <option value="0">请选择基地option> @foreach (var base1 in bases) { <option value="@base1.Id" @(base1.Id == (Model.Count > 0 ? Model[0].Team.BaseId : 0) ? "selected" : "")>@base1.Nameoption> } select> div> <div class="form-group"> <label>日期区间:label> <div class="input-daterange input-group" data-plugin-datepicker> <span class="input-group-addon">从span> <input type="text" autocomplete="off" class="form-control" id="startDate" name="Model[0].startDate" value="@(Model.Count>0?Model[0].StartDate.ToString("yyyy-MM-dd"):DateTime.Now.ToString("yyyy-MM-dd"))" /> <span class="input-group-addon">至span> <input type="text" autocomplete="off" class="form-control" id="endDate" name="Model[0].endDate" value="@(Model.Count>0?Model[0].EndDate.ToString("yyyy-MM-dd"):DateTime.Now.ToString("yyyy-MM-dd"))" /> div> div> <div class="form-group"> <botton onclick="setDate(0);" class="btn btn-default">1月botton> <botton onclick="setDate(1);" class="btn btn-default">2月botton> <botton onclick="setDate(2);" class="btn btn-default">3月botton> <botton onclick="setDate(3);" class="btn btn-default">4月botton> <botton onclick="setDate(4);" class="btn btn-default">5月botton> <botton onclick="setDate(5);" class="btn btn-default">6月botton> <botton onclick="setDate(6);" class="btn btn-default">7月botton> <botton onclick="setDate(7);" class="btn btn-default">8月botton> <botton onclick="setDate(8);" class="btn btn-default">9月botton> <botton onclick="setDate(9);" class="btn btn-default">10月botton> <botton onclick="setDate(10);" class="btn btn-default">11月botton> <botton onclick="setDate(11);" class="btn btn-default">12月botton> div> <div id="KpiContents"> @if (Model.Count > 0) {
" + i + "].Team.Name\" value=\"" + data[i].Name + "\" hidden=\"hidden\" />" + i + "].TeamId\" value=\"" + data[i].Id + "\" hidden=\"hidden\" /> " + i + "].KpiTeam\" type=\"text\" class=\"form-control\" value=\"0.00\" /> 元
" + i + "].DIYKpi\" type=\"text\" class=\"form-control\" value=\"0.00\" />元} div> <div class="form-group"> <input type="hidden" value="@Model.Count>0?Model[0].Id:0" name="Id" /> <button id="btnClickCheck" type="submit" name="actionType" value="save" onclick="btnDisabled(this);" class="btn btn-primary">保存button> div> @if (Model.Count > 0 && !string.IsNullOrEmpty(Model[0].OperationRecord)) { <div class="form-group"> <div>操作记录div> <div>@Html.Raw(Server.HtmlDecode(Model[0].OperationRecord.Replace("\r\n", "<br>")))div> div> } div> } div> div>
元
元
后端action代码如下:
[HttpPost] public ActionResult Detail(Listmodel) { if (model.Count==1 && model[0].Id != 0) { this.KpiBaseTeamApplication.Update(model[0].TeamId, model[0].StartDate, model[0].EndDate, model[0].KpiTeam,model[0].DIYKpi, model[0].OperationRecord, model[0].Id); } else { this.KpiBaseTeamApplication.AddAllTeam(model); } if (!string.IsNullOrEmpty(Request.QueryString["fromUrl"])) { return Redirect(Request.QueryString["fromUrl"]); } else { return RedirectToAction("Index", "KpiBaseTeam"); } }
需要用到的类:
public class KpiBaseTeam : AggregateRoot { ////// 班级Id /// public int TeamId { get; set; } /// /// 班级 /// [ForeignKey("TeamId")] public virtual Team Team { get; set; } /// /// 开始日期 /// public DateTime StartDate { get; set; } /// /// 结束日期 /// public DateTime EndDate { get; set; } /// /// 班级业绩 /// [DecimalPrecision(18, 2)] public decimal KpiTeam { get; set; } /// /// 自主开发业绩 /// [DecimalPrecision(18, 2)] public decimal DIYKpi { get; set; } /// /// 操作记录 /// public string OperationRecord { get; set; } /// /// 添加日期 /// public DateTime CreateDateTime { get; set; } } public class Team : AggregateRoot { /// /// 基地Id /// public int BaseId { get; set; } /// /// 基地 /// [ForeignKey("BaseId"), JsonIgnore] public virtual Base Base { get; set; } /// /// 班级名称 /// [MaxLength(100, ErrorMessage = "班级名称最大为{1}个字符"), Required(ErrorMessage = "班级名称不能为空")] public string Name { get; set; } /// /// 班级员工 /// [JsonIgnore] public virtual List TeamEmployees { get; set; } /// /// 是否显示 /// public bool Show { get; set; } }