asp.net-mvc - Asp.Net MVC 帮助程序 : create a global helper for loading view with or without layout

标签 asp.net-mvc asp.net-mvc-4 razor html-helper razorgenerator

我想创建一个应用程序,其中如果有 Ajax,则调用它返回部分 View ,如果它是页面刷新,则它返回布局和渲染脚本。但问题是部分 View 不会渲染部分,因为我在 APP_Code 中创建了一个 MVC 助手,如下所示:

 @helper AddSection(Func<object, object> content)
 {
   if (IsAjaxRequest)
   {
        @content(null);
   }
   else
   {
        @section scripts {
            @content(null);
        }
   }
}

当我在我看来调用它时,我收到以下错误:

CS0103: The name 'DefineSection' does not exist in the current context
Line 71: #line hidden
Line 72: DefineSection("scripts", () => {
Line 73: 

我尝试了很多方法,但这个错误仍然存​​在,我也搜索了很多,但找不到解决方案。

最佳答案

我搜索了很多,发现助手里面的部分是不可能的。以下是链接:

https://stackoverflow.com/a/22977735/5179246

@helper 和 @section 语法是编译页面的特殊指令。

HelperResult(助手)不知道如何定义一个部分。

DefineSection方法属于WebPageBase。

您可能必须从不同的方向来解决这个问题。使用部分 View 而不是助手可能会解决这个问题。

您可以使用嵌套布局。内部布局仅用于渲染正文和脚本。

关于asp.net-mvc - Asp.Net MVC 帮助程序 : create a global helper for loading view with or without layout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43039672/

相关文章:

c# - Razor 助手中出现奇怪的 NullReferenceException

asp.net-mvc - 如何使用 Razor 引擎在 mvc5 中显示未排序的图像?

javascript - 使用 Javascript 获取 MVC 表单数据

c# - 卡在 Razor 扩展上

asp.net-mvc - ASP MVC 多下拉列表搜索表单

jquery - 单击日历时将数据加载到部分 View (ASP.NET MVC)

c# - Angular $http 错误响应 statusText 始终未定义

c# - 使用 ASP.NET MVC 4 在运行时动态应用验证规则

asp.net-mvc - NLog 文件拆分

MVC3 中动态生成的单选按钮的 jQuery 不显眼验证?