【发布时间】:2010-09-23 04:26:36
【问题描述】:
我正在尝试使用 ASP.NET MVC Ajax.BeginForm 帮助程序,但不想在调用完成时使用现有的内容插入选项。相反,我想使用自定义 JavaScript 函数作为回调。
这可行,但我想要的结果应该以 JSON 形式返回。不幸的是,该框架只是将数据视为字符串。下面是客户端代码。服务器代码只返回一个带有一个字段的 JsonResult,UppercaseName。
<script type='text/javascript'>
function onTestComplete(content) {
var result = content.get_data();
alert(result.UppercaseName);
}
</script>
<% using (Ajax.BeginForm("JsonTest", new AjaxOptions() {OnComplete = "onTestComplete" })) { %>
<%= Html.TextBox("name") %><br />
<input type="submit" />
<%} %>
结果不是显示大写,而是显示未定义。 content.get_data() 似乎包含 JSON,但仅以字符串形式。如何将其转换为对象?
所有这一切似乎真的有点令人费解。有没有更好的方法来使用 Ajax.BeginForm 获取结果内容?如果这么难,我可能会完全跳过 Ajax.BeginForm,直接使用 jQuery 表单库。
【问题讨论】:
-
你能显示你的控制器动作的代码吗?
-
控制器操作不是问题。它实际上是一行: return Json(new {UppercaseName = name.ToUpper()});
标签: javascript asp.net-mvc asp.net-ajax