簡體   English   中英

如何將JsonResult傳遞給ASP.NET MVC中的PartialView

[英]How to pass JsonResult to PartialView in asp.net mvc

我想將JsonResult傳遞給partialView,我能夠將JsonResult返回到普通視圖,但是不知道如何將其傳遞給局部視圖。 傳遞給普通視圖的JsonResult是

public JsonResult Search(int id)
{
    var query = dbentity.user.Where(c => c.UserId == id);
    return Json(query,"Record Found");
}

但想知道如何無法將其返回到局部視圖,例如

public JsonResult Search(int id)
{
   var query = dbentity.user.Where(c => c.UserId == id);
   return PartialView(query,"Record Found");
}

使用動作:

public ActionResult Search(int id)
{
   var query = dbentity.user.Where(c => c.UserId == id);
   return PartialView(query);
}

並在視圖上將Model轉換為Json對象

<script>
var model = @Html.Raw(Json.Encode(Model))
</script>

根據您的評論

我想將JsonResult返回給partialView之類的東西,例如return Json(PartialView,query)– user3026519 2013年11月24日在10:40

我假設您想返回包含渲染局部視圖的Json結果? 話雖這么說,您可以使用create helper方法將視圖轉換為字符串,然后將其傳遞給Json結果。 下面是一個可能的解決方案:

您的輔助方法:

/// <summary>
/// Helper method to render views/partial views to strings.
/// </summary>
/// <param name="context">The controller</param>
/// <param name="viewName">The name of the view belonging to the controller</param>
/// <param name="model">The model which is to be passed to the view, if needed.</param>
/// <returns>A view/partial view rendered as a string.</returns>
public static string RenderViewToString(ControllerContext context, string viewName, object model)
{
    if (string.IsNullOrEmpty(viewName))
        viewName = context.RouteData.GetRequiredString("action");

    var viewData = new ViewDataDictionary(model);

    using (var sw = new StringWriter())
    {
        var viewResult = ViewEngines.Engines.FindPartialView(context, viewName);
        var viewContext = new ViewContext(context, viewResult.View, viewData, new TempDataDictionary(), sw);
        viewResult.View.Render(viewContext, sw);

        return sw.GetStringBuilder().ToString();
    }

調用動作:

public ActionResult Search(int id)
{
    var query = dbentity.user.Where(c => c.UserId == id);
    return Json(RenderViewToString(this.ControllerContext, "Search", query));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM