C# Ajax响应不会反映到弹出视图中
我创建了一个按钮,将一些参数传递给控制器,并在响应弹出窗口中获得响应。 但不知怎的,当我点击按钮时,什么也没发生。开发选项F12中没有错误,我已经确保参数进入我的控制器 我的推荐人: 我正在VisualStudio2010上使用MVC。下面是我的代码: 在我的主页上,所有必备的Jquery都已自动重新加载到global.asax中 HomePage.cshtml 我的控制器: 我的控制器已经绑定到一个应该是弹出视图的视图中。我们称之为PopUp.cshtmlC# Ajax响应不会反映到弹出视图中,c#,jquery,.net,ajax,C#,Jquery,.net,Ajax,我创建了一个按钮,将一些参数传递给控制器,并在响应弹出窗口中获得响应。 但不知怎的,当我点击按钮时,什么也没发生。开发选项F12中没有错误,我已经确保参数进入我的控制器 我的推荐人: 我正在VisualStudio2010上使用MVC。下面是我的代码: 在我的主页上,所有必备的Jquery都已自动重新加载到global.asax中 HomePage.cshtml 我的控制器: 我的控制器已经绑定到一个应该是弹出视图的视图中。我们称之为PopUp.cshtml 如何解决这个问题?我需要澄清服务器端
如何解决这个问题?我需要澄清服务器端关于C的一些问题;如果您在函数/方法上返回一个值,它会将该值返回给调用该函数/方法的代码,而不是智能地猜测您希望将该值打印回客户端,以便浏览器随后可以操作结果
如果是这种情况,您需要从函数/方法或调用函数/方法的位置回显或打印返回值。那么您的控制器操作被调用了吗?生成的JSON看起来像什么?有d属性吗?@AndrewHitaker,谢谢你的回复,很抱歉我忘了编辑它,但它还是一样,按钮没有响应任何内容。谢谢你的澄清。我前面的代码在没有ajax的情况下成功运行,直接进入视图。所以在这种情况下,我需要弹出窗口上的响应。在我用谷歌搜索它之后,我的想法是使用ajax调用,就像我现在做的那样:差不多;在AJAX上使用浏览器与在服务器上使用函数调用截然不同。要从服务器发送到浏览器的任何内容都必须使用echo、print或header完成。
var externalID = "123";
var susbcrNo = "456";
<a href="#COV" onclick="javascript:CustomerOneView.displayPopUpWindow(@externalID, @susbcrNo);" >DETAILS</a>
<div id="dialog" style="display: none"/>
@section Scripts{
<script type="text/javascript" src="@Url.Content("~/Scripts/CustomerOneView.js")" ></script>
<script type="text/javascript">
$("#dialog").dialog({
autoOpen: false,
modal: true,
title: "Details",
buttons: {
Close: function () {
$(this).dialog('close');
}
}
});
var CustomerOneView = (function () {
return {
init: function () {
},
displayPopUpWindow: function (externalID, susbcrNo) {
var postData = {
externalID: externalID,
susbcrNo: susbcrNo
};
$.ajax({
type: "POST",
url: "/Home/OneViewDetails",
data: JSON.stringify(postData),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
$("#dialog").html(r);
$("#dialog").dialog("open");
}
});
}
};
})();
$(document).ready(function () {
CustomerOneView.init();
});
[HttpPost]
public JsonResult OneViewDetails(string externalID, string susbcrNo)
{
Models deviceDetails = new Models();
deviceDetails.Code = externalID;
deviceDetails.Message = susbcrNo;
// call log here make sure the values.
Logger.Debug("COV called here " + externalID + " - " + susbcrNo);
// old return
// return Json(deviceDetails, JsonRequestBehavior.DenyGet);
return Json(deviceDetails);
}