如何从部分视图FormMethod.Get返回JSON数据?

时间:2013-10-23 21:52:17

标签: c# json visual-studio-2012 razor partial-views

我有以下代码发布到我的Search Json。问题是url重定向到json搜索并显示原始json数据。我想回到我的partialView中的一个表。有关如何实现这一目标的任何想法?

<div>
@using (Html.BeginForm("Search", "Home", Formmethod.Get, new {id="search-form"})){
    ...
    <button id="search-btn">Search</button>
}
</div>
<div>
    <table id="search-results">...</table>
</div>

我的家庭控制器工作正常,但要确保图片清晰......

public JsonResult Search(/*variables*/)
{
    ...
    return Json(response, JsonRequestBehavior.AllowGet);
}

我被重定向到“搜索/(我的所有变量)

1 个答案:

答案 0 :(得分:0)

您的响应数据应放入模型中,模型传递到局部视图,并从控制器返回部分视图。

public PartialViewResult Search(/*variables*/)
{
    ...
    YourModel model = new YourModel();
    // Populate model
    return PartialView("_YourPartialView", model);
}

如果你只想刷新局部视图,那么你可以通过ajax调用控制器动作并在ajax回调中调用$('#yourDivContainingThePartialView').html(response)

$.ajax({
  url: urlToYourControllerAction,
  method: 'get', // or 'post', depending on whether your controller action has side effects
  success: function (response) {
      $('#yourDivContainingThePartialView').html(response);
  }
  // other ajax options here if you need them
});