我有一个按钮:打开“电子邮件”,并在该按钮的侧面选中该复选框。
当我单击Turn email on
按钮时,它应该调用控制器的操作方法,我必须在其中编写SP来更新电子邮件表。
Email_ON_OFF_T表具有一个字段:isemailon_off(int类型)。我在其中插入了值0。
因此,Turn email on
按钮的文本将变为turn email off
,并选中复选框。
我尝试了以下代码:
<div class="col-md-8 form-group" style="text-align:right;">
<input type="button" value="Turn Email ON" class="btn btn-success" id="btnturnemailonoff" />
</div>
<div class="col-md-2 form-group">
<input type="checkbox" id="Chkemailonoff" />
</div>
调用按钮的Ajax代码:
$(document).ready(function () {
$('#btnturnemailonoff').on('click', function () {
//var prices = [];
//$('#Chkemailonoff').each(function () {
// prices.push($(this).attr("value"));
//});
var checked = !$(this).data('checked');
$("#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");
}
});
});
});
我正在从Ajax将数据(视图)传递给Controllers动作方法。
[HttpPost]
public ActionResult CheckEmail(string checkemails)
{
//how to call Stored Procedure
return new JsonResult { };
}
我写了以下SP:
ALTER procedure [dbo].[Sp_Email_on_off]
@checkemails varchar(10)
As
Begin
if(@checkemails='false')
Update Email_ON_OFF_T set isEmailON_OFF=1
else
Update Email_ON_OFF_T set isEmailON_OFF=0
End
我受到打击的地方是Stored procedure.How to write and execute Sp in Controllers action Method.
,这是我在MVC中尝试做的第一个任务。我是Mvc的新手。
如何使用Mvc实现呢?
我们将不胜感激任何帮助。
答案 0 :(得分:2)
您可以使用 FromSql 或 ExecuteSqlCommand 来执行存储过程。
FromSql仅可用于执行原始SQL查询或存储过程以获取数据。您不能将其用于INSERT / UPDATE / DELETE。如果要执行INSERT,UPDATE,DELETE查询,请使用ExecuteSqlCommand。它返回整数值,指示受影响的行数。
以下是您所要求的样品。希望对您有帮助,我的朋友:))
if(!string.IsNullOrWhiteSpace(checkemails))
{
dataContext.Database
.ExecuteSqlCommand("Sp_Email_on_off @checkemails", checkemails);
}