我的问题是按下按钮后没有动作。按钮下挂钩AJAX功能。 请提示我有错误//错误。
我的代码:
控制器:
[HttpPost]
public ActionResult InsertCodesToDB(string name)
{
cl.InsertCodesToDB(name);
fl.MoveCodeFileToAccept(name);
string response = "Test";
return Content(response, "application/json");
}
查看/按钮:
<input type="button" class="btn btn-success sendCodesToDB" value="Umieść kody w bazie" data-value="@item.Name"/>
查看/脚本:
<script>
$('.sendCodesToDB').on('click', function () {
var name = $(this).data("value");
$.ajax({
url: '/ActualCodes/InsertCodesToDB',
type: 'POST',
dataType: 'json',
cache: false,
data: JSON.stringify({ 'name': 'name' }),
success: function (response) {
@(ViewBag.MessageOK) = response;
},
error: function () {
onBegin;
}
});
});
function onBegin() {
$('#files').hide();
$('#insertFiles').hide();
$('#loading').show();
$('#lblSelectedProductName').text('Trwa umieszczanie kodów w bazie danych. Proszę czekać ...');
$('#ttt').show();
}
</script>
提前感谢您的帮助。
答案 0 :(得分:1)
您似乎没有为jQuery添加on ready函数。尝试在点击操作之前添加它并在onBegin()函数之前关闭它,如下所示:
<script>
// open here
$( document ).ready(function() {
$('.sendCodesToDB').on('click', function () {
var name = $(this).data("value");
$.ajax({
url: '/ActualCodes/InsertCodesToDB',
type: 'POST',
dataType: 'json',
cache: false,
data: JSON.stringify({ 'name': 'name' }),
success: function (response) {
@(ViewBag.MessageOK) = response;
},
error: function () {
// function call missing "()"
onBegin();
}
});
});
// and close here
});
function onBegin() {
$('#files').hide();
$('#insertFiles').hide();
$('#loading').show();
$('#lblSelectedProductName').text('Trwa umieszczanie kodów w bazie danych. Proszę czekać ...');
$('#ttt').show();
}
</script>
答案 1 :(得分:0)
Ajax中的代码必须是JavaScript。你不能在那里使用C#代码(打印一些值除外)。 @(ViewBag.MessageOK)
在这做什么:
success: function (response) {
@(ViewBag.MessageOK) = response;
},
如果要在消息框中显示响应,请尝试以下操作:
success: function (response) {
$("#your_message_id").html(response);
},
注意:除此之外,您的代码中有几个错误,正如其他人在评论中指出的那样。
1-删除data
中的引号,如下所示:
data: JSON.stringify({ name: name }),
2-将error
更改为此:
error: function () {
onBegin(); // You need "()" here
}
或者更好:
error: onBegin // You don't need "()" here
答案 2 :(得分:0)
我猜你是以错误的方式在AJAX调用中发送数据。
尝试这样
data: JSON.stringify({ name: name })
希望这会对你有所帮助。