Asp.net mvc 带模型的局部视图在视图中,不带模型

Asp.net mvc 带模型的局部视图在视图中,不带模型,asp.net-mvc,asp.net-mvc-partialview,Asp.net Mvc,Asp.net Mvc Partialview,您好,是否可以在没有模型的情况下使用模型内部视图运行PartialView,或者我必须创建包含部分视图模型的模型? 例如: 但当代码进入此方法时,我得到如下错误: Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper' 您可以这样做,但是该操作将加载不同于您期望的内容。我想你会想把它放在其他事情之外。如果是这种情况,您可以返回该

您好,是否可以在没有模型的情况下使用模型内部视图运行PartialView,或者我必须创建包含部分视图模型的模型? 例如:

但当代码进入此方法时,我得到如下错误:

Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'

您可以这样做,但是该操作将加载不同于您期望的内容。我想你会想把它放在其他事情之外。如果是这种情况,您可以返回该部分的内容并将其放置在元素-->
$('#MyDiv').html('@Model.AllSongsHtmlContnet')您可以在控制器中使用助手函数返回以下内容:

protected string RenderPartialViewToString(string viewName, object model)
{
    if (string.IsNullOrEmpty(viewName))
        viewName = ControllerContext.RouteData.GetRequiredString("action");

    ViewData.Model = model;

    using (StringWriter sw = new StringWriter())
    {
        ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
        ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
        viewResult.View.Render(viewContext, sw);

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

没有其他方法可以做到这一点,通过Html.redgeneration或RenderPartial或类似的方法?RenderPartial返回整个blob并替换dom。我认为你必须零碎地做这件事。考虑一个具有Html内容和可以返回Html字符串的基本模型的基本控制器类。
Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'
protected string RenderPartialViewToString(string viewName, object model)
{
    if (string.IsNullOrEmpty(viewName))
        viewName = ControllerContext.RouteData.GetRequiredString("action");

    ViewData.Model = model;

    using (StringWriter sw = new StringWriter())
    {
        ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
        ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
        viewResult.View.Render(viewContext, sw);

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