【问题标题】:PartialView with model in View with out model不带模型的视图中带模型的局部视图
【发布时间】:2016-01-01 19:39:27
【问题描述】:

您好,是否可以在没有模型的视图中运行带有模型的 PartialView,或者我必须创建包含部分视图模型的模型? 示例:

User have his site:
@{
    ViewBag.Title = "MyPanel";
}

<div class="jumbotron">
        <!--Right Menu-->
        <div id="RightMenu" class="col-md-10" style="max-height:550px; overflow-y:scroll;">
            @Html.Action("AllSongs","UserPanel")
        </div>
    </div>
</div>

我想渲染包含模型的 PartialView AllSongs。

public PartialViewResult AllSongs() {
        var userId = (int)Session["Login"];
        var songs = context.Songs.Where(x => x.UserID.Equals(userId));
        return PartialView(songs);
    }

但是当代码进入这个方法时,我得到了这样的错误:

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

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-partialview


    【解决方案1】:

    您可以执行此操作,但是该操作将加载与您期望的不同。我认为您希望将其加载到正在发生的其他事情之外。如果是这种情况,您可以返回该部分的内容并将其放置在一个元素中 --> $('#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.RednerAction 或 RenderPartial 或类似的东西?
    • RenderPartial 返回整个 blob 并替换 dom。我认为你必须做这个零碎的。考虑一个具有 Html 内容的基本控制器类和一个可以返回 html 字符串的基本模型。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多