Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.net mvc中将JsonResult传递给PartialView_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 3_Asp.net Mvc 4 - Fatal编程技术网

C# 如何在asp.net mvc中将JsonResult传递给PartialView

C# 如何在asp.net mvc中将JsonResult传递给PartialView,c#,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,我想将JsonResult传递给partialView,我可以将JsonResult返回到普通视图,但不知道如何将其传递给partialView。传递给普通视图的JsonResult是 public JsonResult Search(int id) { var query = dbentity.user.Where(c => c.UserId == id); return Json(query,"Record Found"); } 但是想知道它如何不能返回到局部视图,例

我想将JsonResult传递给partialView,我可以将JsonResult返回到普通视图,但不知道如何将其传递给partialView。传递给普通视图的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);
}
并在视图中将模型转换为Json对象

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

var model=@Html.Raw(Json.Encode(model))

根据您的评论


我想将JsonResult返回给partialView,类似于返回Json(partialView,query)–user3026519 11月24日'13日10:40

我假设您想要返回包含渲染部分视图的Json结果?也就是说,您可以使用createhelper方法将视图转换为字符串,然后将其传递给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();
    }

根据定义,您的代码
返回PartialView(查询,“找到记录”)
包含两个参数,第一个参数应该是视图名称,第二个参数应该是模型类型。还有两个重载方法包含模型或视图名称。控制器操作只能返回一种类型的操作结果。你的目标到底是什么?我想将JsonResult返回给partialView,类似于返回Json(partialView,query)。你对抽象ActionList使用了错误的返回类型更改。为什么不将呈现的部分视图作为jsonobject返回呢。使用模型呈现局部视图并返回结果,从jquery获得结果后,使用新的呈现字符串更改控件的html。
public ActionResult Search(int id)
{
    var query = dbentity.user.Where(c => c.UserId == id);
    return Json(RenderViewToString(this.ControllerContext, "Search", query));
}