我如何在asp.net mvc中使用仅限子操作

时间:2012-12-11 05:41:36

标签: asp.net-mvc-3 kendo-ui

我有一个kendoUI TabStrip小部件控件。在其中,我有两个标签:产品和支持。

这两个标签是两个不同的视图。我已经定义了这样的标签:

<div id="tabs">
    <div>
        <iframe src="../Products/Index"></iframe>
    </div>
    <div>
         <iframe src="../Support/Index"></iframe>
    </div>                      
</div>

在剧本中:

$("#tabs").kendoTabstrip({});

随后将显示各自视图页面的标签。但产品和支持页面不会直接打开。我的意思是在我输入localhost:4567/Product/Index时在网址栏中,它不会打开页面,它只会在我们选择标签时打开。

我已经为两个控制器定义了这样的动作:

[ChildActionOnly]
public ActionResult Index()
{
     return View();
}

然后当我运行主页面时,它会获得一个异常,它只会被子动作调用。当我选择标签时,它应该成为儿童行动。 我该如何纠正这个问题?我没有包括:

@Html.action("Index","Products")

如果我需要包含它,我应该在哪里添加它? 希望你理解我的问题...

1 个答案:

答案 0 :(得分:2)

ChildActionOnly属性确保只能从视图中调用操作方法作为子方法。 action方法不需要将此属性用作子操作,但我们倾向于使用此属性来防止因用户请求而调用操作方法。定义了一个动作方法后,我们需要创建在调用动作时将呈现的内容。子行为通常与部分视图相关联,但这不是强制性的

所以改为

 @Html.action("Index","Products").

你应该试试

@Html.Partial("Products").