C# Telerik mvc多个控件仅呈现一个或另一个控件

C# Telerik mvc多个控件仅呈现一个或另一个控件,c#,asp.net-mvc,telerik,telerik-mvc,C#,Asp.net Mvc,Telerik,Telerik Mvc,MVC 3 Telerik 2012.1.214 你好, 我这样做已经有一段时间了,它真的在折磨我。我经历了无数的变化,尝试了许多不同的文章、文档和建议。我的问题很简单。我想在页面上有两个Telerik控件。只有一个或另一个将渲染。我确实尝试了一种变体,结果两种效果都没有 这看起来很直截了当,这增加了我的挫败感 在cshtml razor代码中,我有以下内容: @{ Html.Telerik().Window() .Name("Window") ....etc.... }

MVC 3 Telerik 2012.1.214 你好,

我这样做已经有一段时间了,它真的在折磨我。我经历了无数的变化,尝试了许多不同的文章、文档和建议。我的问题很简单。我想在页面上有两个Telerik控件。只有一个或另一个将渲染。我确实尝试了一种变体,结果两种效果都没有

这看起来很直截了当,这增加了我的挫败感

在cshtml razor代码中,我有以下内容:

@{
   Html.Telerik().Window()
   .Name("Window")
   ....etc....
  }

some html ....then

@{  Html.Telerik().TabStrip()
    .Name("TabStrip")
    .Items(tabstrip =>...)
     etc...
    .Render();
  }
在此场景中,将呈现TabString。如果我在两个屏幕上都设置“渲染”,则第一个屏幕将渲染。如果我使用@(),则@{}两者都不会呈现


我做错了什么???

这很奇怪,因为我没有这种问题…
您可以将您使用的全部代码放在视图中吗?

你有没有检查过你是否有JS错误?

根据你所说的,我认为你在使用Telerik控件方面没有做错任何事。但是,请尝试以下方法

  • 删除两个控件之间的所有中间“html”,然后重试
  • 在Chrome中呈现页面,并检查控制台是否存在任何呈现问题
  • 检查呈现的Html以验证这两个控件是否确实没有呈现。它们可能已渲染,但由于某些原因,您无法在浏览器中看到它们
  • 我已经尝试过呈现一个类似于您的页面,方法@()和@{}对我都有效,下面是代码

    @{
    Html.Telerik().Window()
        .Name("Window1")
        .Content("<h1>Window1</h1>")
        .Draggable(true)
        .Render();
    } 
    
    <span>Here is the middle html</span>
    
    @{
    Html.Telerik().TabStrip()
        .Name("TabStrip1")
        .Items(items =>
                   {
                       items.Add().Content("<h1>Tab 1</h1>").Text("Tab 1").Visible(true);
                       items.Add().Content("<h1>Tab 2</h1>").Text("Tab 2");
                       items.Add().Content("<h1>Tab 3</h1>").Text("Tab 3");
                   })
        .Render();
    }
    
    @{
    Html.Telerik().Window()
    .名称(“窗口1”)
    .内容(“窗口1”)
    .Draggable(真)
    .Render();
    } 
    这是中间的html
    @{
    Html.Telerik().TabStrip()
    .Name(“TabStrip1”)
    .项目(项目=>
    {
    items.Add().Content(“Tab 1”).Text(“Tab 1”).Visible(true);
    items.Add().内容(“表2”).文本(“表2”);
    items.Add().内容(“表3”).文本(“表3”);
    })
    .Render();
    }
    
    以下是@()方法

    @(
    Html.Telerik().Window()
    .Name(“窗口2”)
    .内容(“窗口2”)
    .Draggable(真)
    )
    这是中间的html
    @(
    Html.Telerik().TabStrip()
    .Name(“TabStrip2”)
    .项目(项目=>
    {
    items.Add().Content(“Tab 1”).Text(“Tab 1”).Visible(true);
    items.Add().内容(“表2”).文本(“表2”);
    items.Add().内容(“表3”).文本(“表3”);
    })
    )
    
    我正试图进一步理解你的问题。您的意思是-如果将window和tabstrip都放在@{}内,并将.Render()放在两者上,则只有窗口才会呈现。-如果将window和tabstrip都放在@()而不是@{}中,则两者都不会渲染。我对你的理解正确吗?作为旁注,@()将呈现内部内容,@{}用于执行某些代码。如果window&tab位于@{}中,并且render位于两个位置,则第一个…在本例中为window…。将进行渲染。我试过了…但很可能是做错了…@()两个都没有渲染,在这种情况下,两个都没有渲染。当我做@()时,我尝试将它作为@(窗口)和单独的@(选项卡)。我想我也尝试过@(窗口,标签),但没有任何运气…我再次确信问题是我缺乏知识。这不是答案。如果你有任何问题,你应该在评论中问他。Stackoverflow不是一个论坛,它是一个问答系统。如果可以的话,我会发表评论,但我没有足够的声誉去做(需要50个)。如果我不能发表评论(我只是在这里问,无意冒犯),我怎么能要求更多的细节来帮助他呢?我想目前你不能这么做!你也可以把它当作一个问题来问!:)对不起,我不明白你的意思(你是说创建一个新的Stackoverflow问题,以便我可以了解有关他的问题的更多细节吗?
    @(
    Html.Telerik().Window()
        .Name("Window2")
        .Content("<h1>Window2</h1>")
        .Draggable(true)
    )
    
    <span>Here is the middle html</span>
    
    @(
    Html.Telerik().TabStrip()
        .Name("TabStrip2")
        .Items(items =>
                   {
                       items.Add().Content("<h1>Tab 1</h1>").Text("Tab 1").Visible(true);
                       items.Add().Content("<h1>Tab 2</h1>").Text("Tab 2");
                       items.Add().Content("<h1>Tab 3</h1>").Text("Tab 3");
                   })
    )