Javascript 在MVC中维护页面加载复选框的状态
我的问题与页面加载有关。 我有以下代码: 控制器:Javascript 在MVC中维护页面加载复选框的状态,javascript,asp.net,model-view-controller,Javascript,Asp.net,Model View Controller,我的问题与页面加载有关。 我有以下代码: 控制器: public ActionResult Index() { BD.isEmailON_OFF= db.Email_ON_OFF_T.Select(x=>x.isEmailON_OFF).FirstOrDefault().GetValueOrDefault(); } [HttpPost] public ActionResult CheckEmail(string checkemails)
public ActionResult Index()
{
BD.isEmailON_OFF= db.Email_ON_OFF_T.Select(x=>x.isEmailON_OFF).FirstOrDefault().GetValueOrDefault();
}
[HttpPost]
public ActionResult CheckEmail(string checkemails)
{
//calling Stored Procedure
if (!string.IsNullOrWhiteSpace(checkemails)|| checkemails=="true" || checkemails=="false")
{
var checkemails1 = new SqlParameter("checkemails", checkemails);
db.Database
.ExecuteSqlCommand("EXEC Sp_Email_on_off @checkemails", checkemails1);
}
return new JsonResult { };
}
我有一张表是开着的还是关着的
:
我作为0插入到isemailonoff列
功能:
我已打开电子邮件按钮和复选框
打开电子邮件------>成为关闭按钮并选中复选框
关闭按钮-->变为打开按钮,复选框未选中
一直到这里都工作正常
打开电子邮件------>成为关闭按钮并选中复选框
页面加载(加载页面)
点击关闭按钮(第二个tym),它会改变
我尝试的是:
观点:
@{
if (Model.isEmailON_OFF == 0)
{
<input type="button" value="Turn Email on" class="btn btn-success" id="btnturnemailonoff" />
<input type="checkbox" id="Chkemailonoff" style="float:right;" />
}
else
{
<input type="button" value="Turn Email off" class="btn btn-success" id="btnturnemailonoff" />
<input type="checkbox" id="Chkemailonoff" style="float:right;" checked/>
}
}
我在AJAX调用按钮点击中做了更改,它对我起了作用
$(document).ready(function () {
$('#btnturnemailonoff').on('click', function () {
debugger;
var checked = $("#Chkemailonoff").prop('checked');
var message = checked ? 'Turn Email On' : 'Turn Email Off';
if (confirm("Do you want to " + message + "? ")) {
$("#Chkemailonoff").prop('checked', !checked);
$(this).val(message)
var url = '@Url.Action("CheckEmail", "BillingDetails")';
$.ajax({
url: url,
type: "POST",
data: { checkemails: !checked },
dataType: "json",
success: function () {
//alert("ajax request to server succeed");
}
});
}
});
});
@chetan…可能是因为选中了复选框。因此,在按钮单击(关闭电子邮件)时,状态应为false,以便打开电子邮件并选中复选框,但对控制器来说也是如此……是的……正是因为如此……如何克服这一点?哇。你太棒了,我的朋友。对不起,我今天不检查电子邮件:D@Tomato32...no问题朋友:)你使用skype吗?因此,我们可以轻松聊天:D@Tomato32嘿你能帮我吗?只是在skype上打电话给我:d。也许我能帮你更好。很抱歉反应太晚了,我的朋友。
<script type="text/javascript">
$(document).ready(function () {
$('#btnturnemailonoff').on('click', function () {
var checked = !$(this).data('checked');
var message = checked ? 'Turn Email ON' : 'Turn Email OFF';
if (confirm("Do you want to " + message + "? ")) {
$("#Chkemailonoff").prop('checked', checked);
$(this).val(checked ? 'Turn Email Off' : 'Turn Email on')
$(this).data('checked', checked);
debugger;
var url = '@Url.Action("CheckEmail", "BillingDetails")';
$.ajax({
url: url,
type: "POST",
data: { checkemails: checked },
dataType: "json",
// traditional: true,
success: function () {
alert("ajax request to server succeed");
}
});
}//end of if
});
});
</script>
ALTER procedure [dbo].[Sp_Email_on_off]
@checkemails varchar(10)
As
Begin
if(@checkemails='false')
Update Email_ON_OFF_T set isEmailON_OFF=0
else
Update Email_ON_OFF_T set isEmailON_OFF=1
End
$(document).ready(function () {
$('#btnturnemailonoff').on('click', function () {
debugger;
var checked = $("#Chkemailonoff").prop('checked');
var message = checked ? 'Turn Email On' : 'Turn Email Off';
if (confirm("Do you want to " + message + "? ")) {
$("#Chkemailonoff").prop('checked', !checked);
$(this).val(message)
var url = '@Url.Action("CheckEmail", "BillingDetails")';
$.ajax({
url: url,
type: "POST",
data: { checkemails: !checked },
dataType: "json",
success: function () {
//alert("ajax request to server succeed");
}
});
}
});
});