我设置了一个小型演示应用程序,用于通过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());
}
}
这里出了什么问题? 提前谢谢!
答案 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);
}
});
});