【问题标题】:ASP.NET MVC 3 - tell partialview to regrab the viewdata values?ASP.NET MVC 3 - 告诉 partialview 重新获取 viewdata 值?
【发布时间】:2014-02-02 23:06:17
【问题描述】:

假设我有一个像这样的局部视图 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函数吗?

【问题讨论】:

  • 您可以尝试禁用 ajax 缓存,看看它是如何工作的。这里是你如何做到这一点 $.ajaxSetup({ cache: false })

标签: asp.net-mvc asp.net-mvc-partialview


【解决方案1】:

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

修复您的 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/ 了解如何处理结果

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多