【问题标题】:Razor @{ ... } vs @ calling RenderPartialRazor @{ ... } vs @ 调用 RenderPartial
【发布时间】:2014-03-25 08:40:25
【问题描述】:

我试图理解为什么在我看来这样做时会出错

@Html.RenderPartial("MyPartial", Model);

编译错误 说明:在编译服务此请求所需的资源期间发生错误。请查看以下具体错误详情并适当修改您的源代码。

编译器错误消息:CS1502:“System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)”的最佳重载方法匹配有一些无效参数

但是当我这样做时,部分渲染得很好

@{
   Html.RenderPartial("MyPartial", Model);
}

有谁知道为什么第一个例子失败了?

【问题讨论】:

  • 单行调用主要是输出数据(如@DateTime.Now)或纯C#逻辑(如@model.ID != 0?yes : no)。块代码用于 API 处理,例如调用局部视图或其他最复杂的操作。请注意,有关将帮助程序写入页面的错误状态。
  • 重复。这与@Chandu 链接的问题基本相同。
  • @AlexeiLevenkov:我会说它相似但不完全相同。在寻找问题方面,您可能不会认为比较 partial 和 renderpartial 的东西与为什么 somethign 需要在一个块中...

标签: c# asp.net-mvc-3 razor


【解决方案1】:

基本上就是这样的格式……

@Html.RenderPartial("MyPartial", Model)

... 用于不返回 void 的函数,因为 RenderPartial 确实返回 void,所以您会收到该错误。

相反,在这个块中,它只是代码执行(将在内部进行写入调用):

    @{    
Html.RenderPartial("MyPartial", Model); 
}

你也可以调用

@Html.Partial("MyPartial") 

...确实返回字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 2018-11-10
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多