自刷新部分视图

时间:2017-02-19 15:54:01

标签: jquery ajax asp.net-mvc

我设置了一个小型演示应用程序,用于通过jQuery / Ajax刷新部分视图。我发现了从主视图中刷新局部视图的各种示例,但不是从视图本身刷新的部分视图。

这是我试图使用的代码:

主要观点:

@model OrpheusTestWeb.Models.ViewModel
@{
    ViewBag.Title = "Home Page";
}
<h2>Guid1: @Model.GUID1</h2>
<div id="PartialViewDIV">
    @Html.Partial("_PartialView", Model.GUID2)
</div>

部分视图

@model string

<h3>Guid2: @Model</h3>

<input id="button" type="button" class="btn-danger" />

<script type="text/javascript">
    $("#button").on('click', function () {
        $.ajax({
            url: "Partial/Index",
            type: "get",
            dataType: "html",
            success: function (result) {
               $("#PartialViewDIV").html(result); //the PartialViewDIV-tag is in the main view, how can i "redirect" it then?
               console.log('success', data);
            }
        });
    }
</script>

部分视图的控制器:

public class PartialController : Controller
    {
       public ActionResult Index()
       {
           return PartialView("_PartialView", Guid.NewGuid().ToString());
       }
    }

这里出了什么问题? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

为什么不回json? 做这样的事情:

  public class PartialController : Controller
{
    [HttpGet]
    public JsonResult Index()
    {
        return Json(new { _PartialView = Guid.NewGuid().ToString()},JsonRequestBehavior.AllowGet);

    }
}

<script type="text/javascript">
$("#button").on('click', function () {

    $.ajax({
        url: "Partial/Index",
        type: "get",
        dataType: "html",
        success: function (result) {
            var json = $.parseJSON(result);
            $('#YourId').remove();
            $('#PartialViewDIV').append('<div id="YourId">' + json._PartialView + '</div>');
            //$("#PartialViewDIV").html(result); //the PartialViewDIV-tag is in the main view, how can i "redirect" it then?
           // console.log('success', data);
        }
    });
});