0

假设我有一个像这样的部分视图 X.ascx:

<div id = "updateTargetIdForAjaxForm">
... javascript code which only has function definitions.
... ajax form with buttons inside
    <div id = "stuff"></div>
    <script type = "text/javascript">
       do things to "stuff" div as soon as X.ascx is loaded. 
    </script>
</div>

现在我想根据 Ajax 响应更新 X.ascx 上的内容。早些时候,我返回了 PartialView 但内联 javascript 不喜欢这样,这意味着当重新加载 X.ascx 时内联 javascript 不会被执行。

那么有没有办法我不能在我的控制器中返回 PartialView,而只是更新 ViewData 值并告诉 PartialView 重新获取更新后的 ViewData 值?还可以根据服务器的响应调用一两个javascript函数吗?

4

1 回答 1

0

我看到了两种可能的方法:

修复您的 javascript 代码以使用动态加载的局部视图运行:

这两个应该可以帮助你。

另一种方法是在您的控制器上创建一个将返回 JSON 结果的操作,并且您应该能够从 jQuery 处理 JSON 对象并更新您的表单。您的操作可能如下所示:

public JsonResult GetFormValues()
{
    var jsonFormValues = new
    {

        key1 = "abc",
        key2 = "123",
        key3 = "abcdef"

    };
    return Json(jsonFormValues, JsonRequestBehavior.AllowGet);
}

并查看http://api.jquery.com/jQuery.getJSON/如何处理结果

于 2011-11-25T08:21:52.327 回答