zoukankan      html  css  js  c++  java
  • RenderPartial: No overload for method 'Write' takes 0 arguments

    如下方法调用RenderPartial:

    报“No overload for method 'Write' takes 0 arguments”的错误;

    @if (@Model != null && @Model.ProductBaseInfo != null)

    }
    else
    {
    @Html.Partial("PartialView/_ProductNotFound")
    }

    @if (@Model != null && @Model.ProductBaseInfo != null)
    {
    
    } 
    else
    {
           
        @{Html.RenderPartial("PartialView/_ProductNotFound");}
    }

    改为下面代码后错误消失:

    @if (@Model != null && @Model.ProductBaseInfo != null)
    {
    
    } 
    else
    {
           
       @Html.Partial("PartialView/_ProductNotFound")
    }

    网上找了一下资料:http://www.cnblogs.com/meen/p/3145696.html

    下面的第一条应该解释了原因:RenderPartial和@Html.Partial一种是直接输出Html,一种是在内部输出(RenderPartial),所以RenderPartial无法直接生成Html。

    1、带有Render的方法返回值是void,在方法内部进行输出;不带的返回值类型为MvcHtmlString,所以只能这样使用:
        @Html.Partial 对应 @{Html.RenderPartial(....);}
        @Html.Action 对应 @{Html.RenderAction(....);}

    2、Action、RenderAction加载方法的视图,执行Controller → Model → View的顺序,然后把产生的页面带回到原来的View中再回传。而Partial、RenderPartial直接加载视图文件内容

    3.  Html.Partial可以直接提供用户控件名作为参数,而Html.Action需要有对应的Action,在Action内部返回PartailResult(即retun PartialView())。

    4、对于简单的没有任何逻辑的用户控件,推荐使用Html.Partial;对于需要设置一些Model的用户控件,推荐使用Html.Action。当然,有Model数据也是可以使用Html.Partial方法的,可以看方法的重载。

    5、使用Html.Action有个好处,就是可以根据不同的场景选择不同的用户控件。比如:
    @Html.Action("UserInfoControl")
    在对应的UserInfoControl这个Action中,在用户未登录的时候,可以retun PartialView("LogOnUserControl");登录后,可以retun PartialView("UserInfoControl");

  • 相关阅读:
    alert
    自定义基类装载数据模块显示到dataGrid
    关于dataGrid查询按钮的实现
    如何查看oracle用户具有的权限和角色 大风起
    LoadRunner使用手册 大风起
    电脑蓝屏了,教你一招保证恢复 大风起
    oracle如何查看当前有哪些用户连接到数据库 大风起
    apache+tomcat整合(动静分离) 大风起
    cdn技术浅谈 大风起
    Tomcat性能优化总结 大风起
  • 原文地址:https://www.cnblogs.com/iwaner/p/3383792.html
Copyright © 2011-2022 走看看