我将与您分享我的_MaintenancePMAalertstructionGetData.cshtml(Partial view)编码部分(主要是html + jquery),模型部分-〉名为tblMoldData.cs的文件,以及控制器的actionResult。我想发送真值到控制器,并在选中复选框时将其保存在数据库中,如果未选中复选框,则发送假值。
“我是编码新手,我相信我很快就能编写出正确的代码来实现我的目标。但是,我意识到我的代码中缺少了一些重要的东西,使我无法实现预期的结果。您能否提供一些指导或帮助,帮助我确定并解决此问题?”
_维护PM警报指令获取数据.cshtml
<div class="col-md-5" style="padding-right: 2px;">
<div class="NA">
<input type="checkbox" style="width: 11%;" value="@Model.MoldData.IsPM1NA" id="IsPM1NA" class="form-control" />
<label class="NACheckbox" for="IsPM1NA">N/A</label>
</div>
</div>
Jquery脚本代码
$(document).ready(function () {
$('#IsPM1NA').on('change', function () {
SaveMoldDetails();
});
});
function SaveMoldDetails() {
debugger;
var obj = new Object();
obj.MoldDataID = @Model.MoldData.MoldDataID;
var PM1NA = false;
var PM1NA = $("#IsPM1NA").val(false);
if ($("#IsPM1NA").prop("checked")) {
PM1NA = $("#IsPM1NA").val(true);
}
obj.PM1NA = PM1NA;
$.ajax({
url: '/MaintenanceTracking/SaveMoldMaintenance1',
type: 'Post',
data: obj,
success: function () {
},
error: function () {
}
})
}
模型部件
public class MaintenanceScheduleCommon
{
public tblMoldData MoldData { get; set; }
}
tblMoldData.cs文件
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Moldtrax.Models
{
public class tblMoldData
{
[Key]
public int MoldDataID { get; set; }
public int? CompanyID { get; set; }
public int? CustomerID { get; set; }
public bool IsPM1NA { get; set; }
}
public class MainMoldData
{
public IEnumerable<tblMoldData> TBLList { get; set; }
public tblMoldData TblDetails { get; set; }
}
}
控制器-〉维护跟踪控制器. cs
public ActionResult SaveMoldMaintenance1(tblMoldData model)
{
int CID = ShrdMaster.Instance.GetCompanyID();
var tblPM = db.TblMoldData.Where(x => x.MoldDataID == model.MoldDataID && x.CompanyID == CID).FirstOrDefault();
if (tblPM != null)
{
tblPM.IsPM1NA = model.IsPM1NA;
db.SaveChanges();
sd.UpdatePMAlertCaptions(CID, model.PM1Caption, model.PM2Caption, model.PM3Caption, model.PM4Caption);
}
return Json("", JsonRequestBehavior.AllowGet);
}
我尽了最大努力向您提供所有细节,如果我跳过了任何内容,请让我知道。我已经添加了'IsPM 1 NA'作为数据库表(tblMoldData)中的列名,添加了数据类型'bit'。我正在使用c#asp.netframworks,Visual Studio 2017和SSMS 2016。
我已经提到了所有的代码,我可以工作。请帮助,如果有人可以。谢谢
1条答案
按热度按时间4urapxun1#
改为
从这个
此问题与Web应用程序中的复选框行为不正确有关。2此问题被确定为负责处理复选框的JavaScript代码中的打字错误。
最初,代码有一个名为“obj”的对象,该对象有一个名为“PM1NA”的属性,该属性应该表示复选框的状态。但是,由于拼写错误,代码没有引用正确的复选框控制器,导致意外行为。
为解决此问题,已通过将属性名称从“PM1NA”更改为“IsPM1NA”修改代码,这将允许代码正确引用控制器并检索复选框的状态。进行此更改后,复选框开始正常工作,表明问题已解决。