【发布时间】:2017-12-04 04:59:54
【问题描述】:
我是 ASP.NET MVC 的新手。我在为以下场景设计布局时面临一个或其他问题。你能帮我解决一下吗,我一定会感谢你的帮助。
要求是:
这是一个现有的应用程序。在加载视图时,有一个主视图,并且内部已经定义了几个部分视图。
在其中一个部分视图中,我需要根据需要多次使用相同的布局。这取决于用户需要多少。可以是1个或2个或更多。我们在 UI 中广泛使用 Telerik Kendo 控件,在现有视图中,我们使用视图强类型化模型对象。
我想使用 Kendo Tabstrips 控件并在用户需要时动态添加 Tab。此外,布局完全相同,因此,想设计(具有许多控件的 Html 表格,如文本框、下拉列表等)每个选项卡布局为部分视图,以便我可以重用设计。请让我知道这种方法是最好的还是有更好的方法可用。
当用户提交主视图时,我需要获取整个数据。每个主要的局部视图都包含,并且 Tabstrips 局部视图的父级还包含一个但未为每个选项卡条局部视图定义的,因为我需要数据作为父级局部视图模型对象中的一个属性中的对象集合。
您能否告诉我如何为每个选项卡(部分视图)以及父部分视图设计模型对象。如果你能展示一个小示例代码,那就太好了。
以下是在设计过程中遇到的问题
- 无法在另一个内部添加,因为低于错误
内联标记块(@
内容
) 不能嵌套。只允许一级内联标记。@(Html.Kendo().PanelBar().Name("panelBar_" + panelName).Items(pb => pb.Add().Text("PCG").Expanded(Expanded).Selected(true)
.Content(@<text>
<form id="frm_@(panelName)" onsubmit="DisableEvent(event)">
<div style="width:100%; height:auto;">
<button class="k-button">Add new PCG</button>
@(Html.Kendo().TabStrip()
.Name("TabPCG").HtmlAttributes(new { style = "width:100%;" })
.Items(items =>
{
items.Add()
.Text("PCG 1 <button data-type='remove' class='k-button k-button-icon' onclick='deleteMe(this)'><span class='k-icon k-i-close'></span></button>")
.Encoded(false)
.Selected(true)
.HtmlAttributes(new { style = "width:12%", id = "tabPCG1" })
//.LoadContentFrom("_PCGTab", "Home", new { tabId ="tab1"});
.Content(@<text>@(Html.Partial("_PCGTab"))</text>);
})
)
</div>
</form>
</text>)))
2.然后改变设计如下图。在父视图中定义局部视图
@helper RenderPCGTab()
{
<div style="width:100%; height:auto;">
<button class="k-button">Add new PCG</button>
@(Html.Kendo().TabStrip()
.Name("TabPCG").HtmlAttributes(new { style = "width:100%;" })
.Items(items =>
{
items.Add()
.Text("PCG 1 <button data-type='remove' class='k-button k-button-icon' onclick='deleteMe(this)'><span class='k-icon k-i-close'></span></button>")
.Encoded(false)
.Selected(true)
.HtmlAttributes(new { style = "width:12%", id = "tabPCG1" })
//.LoadContentFrom("_PCGTab", "Home", new { tabId ="tab1"});
.Content(@<text>@(Html.Partial("_PCGTab"))</text>);
})
)
</div>
}
并设计了 Kendo 面板,如下所示 Parent Partial View
@(Html.Kendo().PanelBar().Name("panelBar_" + panelName).Items(pb => pb.Add().Text("PCG").Expanded(Expanded).Selected(true)
.Content(@<text>
<form id="frm_@(panelName)" onsubmit="DisableEvent(event)">
@RenderPCGTab()
</form>
</text>)))
【问题讨论】:
-
3.第三个问题我无法使用部分视图不同的模型对象,因为出现错误,例如传递到字典中的模型项是类型..但是这本字典需要一个类型的模型项,请您指导我正确的方向.我一定会感谢你的帮助。请尽量回答我的所有问题,非常感谢。
-
编辑您的问题以包括“第 3 期”。 #2 的错误是什么?
-
如果您的解决方案值得分享,请将其作为答案发布。
标签: asp.net asp.net-mvc kendo-ui