【发布时间】:2012-02-17 15:16:58
【问题描述】:
我正在尝试从 jquery UI 对话框调用控制器操作。 我目前拥有的是这样的:
.html("<p><textarea name=\"TextMessage\" id=\"textItems\" rows=\"10\" cols=\"72\" /><br /><br /><input type=\"button\" style=\"float:right;\" id=\"submitData\" onclick=\"Test()\" value=\"Submit\" /></p>");
我用来调用控制器动作的脚本是这个:
<script type="text/javascript">
function Test() {
$ajax({
url: '<%= Url.Action("GetData", "Report") %>',
success: function (data) {
alert(data);
}
});
};
</script>
控制器动作是这样的:
[HttpGet]
public JsonResult GetData()
{
return Json("success", JsonRequestBehavior.AllowGet);
}
我想知道我是否做错了什么,我试图让它工作但没有任何成功。当我尝试通过http://localhost:1322/Report/GetData 直接启动控制器时,它工作正常,这意味着脚本设置不正确。
【问题讨论】:
-
如果返回 JSON,则需要设置 dataType: 'json' 属性。您还应该在您的 ajax 调用中包含“错误:函数(...”)。
-
您似乎缺少
Test函数上的右括号,但这可能只是一个错字。 -
@JackieChiles 我更新了测试功能,看看是不是还可以,也没啥作用
-
@rontornambe 是否可以给我一个例子,这对我有很大帮助。提前谢谢
-
@Laziale:当您说您能够“直接启动控制器”时,您是指导航到该 URL(在浏览器中),还是您的意思是如果您设置该 URL 作为 AJAX 调用的
url参数?顺便说一句,通过您的编辑,您现在在Test的右括号后面有一个尾随分号。
标签: javascript jquery asp.net-mvc-3 jquery-ui razor