【发布时间】:2014-03-03 00:55:03
【问题描述】:
我认为有以下代码:
<script type="text/javascript">
function OnCancelClick(e)
{
var jobId = e;
var flag = confirm('You are about to cancel job : ' + jobId + '. Are you sure you want to cancel this job?');
if (flag) {
$.ajax({
url: '/job/CancelJob',
type: 'POST',
data: { jobId: jobId },
dataType: 'html',
success: function (result) { alert('Job ' + jobId + ' was cancelled.'); document.location = "@Url.Action("Index", "Job")"; },
error: function () { alert('Something went wrong. Check the log for more information.'); }
});
}
return false;
}
</script>
在我看来我也有:
<input type="submit" id="cancelButton" value="Cancel" onclick="javascript: return OnCancelClick(@Model.Id);" />
在我的控制器中,我有:
[HttpPost]
public ActionResult CancelJob(int jobId)
{
try
{
logger.LogInfo(string.Format("<start> Cancel-button clicked for job : {0}", jobId), jobId);
JobCommandService.ChangeStatus(jobId, 6);
logger.LogInfo(string.Format("<end> Cancel-button clicked for job : {0}", jobId), jobId);
return RedirectToAction("Index", "Job");
}
catch (Exception ex)
{
logger.LogError(ex.Message, ex, jobId);
Response.StatusCode = (int)HttpStatusCode.InternalServerError;
return Json(new { Success = false, Message = ex.Message });
}
}
当我在我的 VS2012 中运行它时,它工作得很好。 当我将它部署到服务器时,我收到了出错的消息。 在我的日志中,没有任何按钮被点击的痕迹。
【问题讨论】:
-
确保您的所有脚本都正确包含在生产服务器上。除此之外,您会收到什么错误消息?
-
我没有收到任何消息。我得到的唯一消息是“'出了点问题。查看日志以获取更多信息。”但是我的日志中没有任何内容。甚至没有被点击的按钮的痕迹。
-
当我查看页面的源代码时,脚本就在其中。所以应该没问题。
-
您在 Firefox/Chrome 的网络选项卡中看到了什么?可能是使用
//myserver/myapp/之类的root url 部署的站点以及发送到//myserver/job/CancelJob的ajax 帖子吗? -
将
error: function()更改为error: function(x,t,e)并检查x.responseText
标签: c# javascript asp.net-mvc-4 visual-studio-2012