我对Web应用程序开发非常陌生,我认为我会从最近的技术开始,所以我正在努力学习asp.net以及MVC框架.对于MVC专业人士来说,这可能是一个非常简单的问题.
我的问题是部分视图是否应该有关联的操作,如果是,那么只要普通页面RenderPartial()在局部视图上使用,是否会调用此操作?
当我在一个视图中,我调用我@Html.RenderPartial("MyPartialView", MyObject) 可以设置它,以便这个局部视图有一个控制器,当调用RenderPartial时调用该控制器吗?
虽然@Html.RenderPartial调用write和return void,但它仍然写入StringWriter/ StringBuilder.有没有办法直接渲染到ResponseStream?
这可以通过IViewEngine实现渲染的自定义来完成,PdfView直接输出到ResponseStream?
加成
ViewResultBase.ExecuteResult显示ViewContext正在构建Response.Output,但调试器显示ViewContext.Writer为StringWriter
这两种方法都会导致a StringWriter
return PartialView("view", Model)
// or
PartialView("view", Model).ExecuteResult(ControllerContext)
Run Code Online (Sandbox Code Playgroud)
编辑
它似乎System.Web.WebPages.WebPageBase ExecutePageHeirarchy将temp压StringWriter入上下文堆栈,所以我不确定是否可以绕过它
综上所述
RenderPartial,RenderAction不直接输出到Response.Stream,Razor Views都不会
解
这是一个新的WebPages/Razor渲染引擎,用a StringWriter到a 包装所有东西StringBuilder.解决方案是更改我的页面以使用 WebFormViewEngine不应用此包装的页面.
我是asp.net的新手,我有一个页面,我想作为局部视图显示.该页面是一个div标签,就像这样<div> Html.RenderPartial("view",Model)</div>
,我用Html.Render做同样的事情,但它只适用于RenderPartial.
有谁知道为什么,以及有什么不同?我知道Renderpartial对于Image等更好.但是还有另一个区别吗?非常感谢:)