我想创建一个应用程序,其中如果有 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/