下面是一个Ajax POST
变量,用于将一些信息返回给ASP MVC3 View。但是,我无法使.dialg()
弹出功能起作用。现在你点击调用GetProgramDetails(pgmname)
的图标,没有任何反应。第一次使用Ajax,所以任何建议将不胜感激。 THX!
<script src="http://code.jquery.com/jquery-1.8.3.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js" type="text/javascript"></script>
<script type="text/javascript">
function GetProgramDetails(pgmname) {
var request = $.ajax({
type: 'POST',
url: '/BatchPrograms/PopDetails',
data: { programName: pgmname },
dataType: 'html'
});
request.done(function (data) {
$('#data').dialog();
});
</script>
编辑
我已更新request.done
函数以包含一个简单的alert
,以查看是否正在调用代码。在使用Chrome的调试器后,我看到里面的代码被完全跳过了。
request.done(function (data) {
alert("HERE!");
$('#programExplanation').html(data);
});
第二次编辑
以下是ajax从以下位置返回值的控制器代码:
[HttpPost]
public string PopDetails(string programName)
{
BatchPrograms batchprograms = db.BatchPrograms.Find(programName);
if (batchprograms == null) return string.Empty;
StringBuilder s = new StringBuilder();
s.Append(batchprograms.ProgramName + " - " + batchprograms.ShortDescription);
s.Append("<br />Job Names: " + batchprograms.PrdJobName + ", " + batchprograms.QuaJobName );
s.Append("<br /> " + batchprograms.Description);
return s.ToString();
}
答案 0 :(得分:2)
您需要使用success方法来处理回调,如下所示:
var request = $.ajax({
type: 'POST',
url: '/BatchPrograms/PopDetails',
data: { programName: pgmname },
dataType: 'html'
}).success(function(data){ $('#data').dialog()} );
这将为您启动对话框,但是如果您想让响应数据与它一起使用,您可以让GetProgramDetails采用第二个参数,这是在加载数据之后的回调:
function GetProgramDetails(pgmname, callback) {
var request = $.ajax({
type: 'POST',
url: '/BatchPrograms/PopDetails',
data: { programName: pgmname },
dataType: 'html'
}).success(callback);
}
这样,收到响应后,您可以处理在回调实现中如何处理数据,在这种情况下,您似乎将在对话框中设置数据并启动对话框。