重新加载部分视图Ajax

时间:2016-08-18 16:03:06

标签: ajax asp.net-mvc

我有一个局部视图" _search"我显示了一个数据列表,我添加了一个用于搜索和链接搜索的文本框

当我点击链接时,我得到一个未定义的错误页面。如何执行搜索方法并显示相同的局部视图  在我的搜索方法中,我返回json

        return Json(
        {
            Data = base.RenderPartialView("_search", model),
                        }, JsonRequestBehavior.AllowGet);

搜索视图 我用按钮

更改了<a>
<script type="text/javascript">
    document.getElementById("myButton").onclick = function () {
        location.href = '@Url.Action("Search")'
    };
</script>

<button id="myButton" >search</button>

1 个答案:

答案 0 :(得分:1)

你必须修复代码,因为你无法返回json类型的部分视图和....我建议你的最佳方式,在谷歌网站上发送问题之前,如何实现这个任务。

以下链接可帮助您了解如何实施此项工作:

https://www.google.com/search?q=reload+partial+in+mvc&ie=utf-8&oe=utf-8

您还可以在以下链接中看到如何“在ASP.NET MVC中自动刷新部分视图”的示例:

https://www.mindstick.com/Articles/1132/auto-refresh-partial-view-in-asp-dot-net-mvc

示例

所以,假设您有View with PartialView,必须通过按钮点击更新:

<div class="target">
    @{ Html.RenderAction("UpdatePoints");}
</div>
<input class="button" value="update" />

有一些方法可以做到这一点。例如,您可以使用jQuery:

<script type="text/javascript">
    $(function(){    
        $('.button')click(function(){        
            $.post('@Url.Action("PostActionToUpdatePoints", "Home")').always(function(){
                $('.traget').Load('/Home/UpdatePoints');        
            })        
        });
    });        
</script>

PostActionToUpdatePoints是具有[HttpPost]属性的Action,用于更新点

如果您在动作UpdatePoints()中使用逻辑来更新点,可能您忘记为其添加[HttpPost]属性:

[HttpPost]
public ActionResult UpdatePoints()
{    
    ViewBag.points =  _Repository.Points;
    return PartialView("UpdatePoints");
}

我希望这对你有所帮助。

<强>参考:

Updating PartialView mvc 4