MVC中重复的UI功能

时间:2015-06-08 06:37:17

标签: javascript jquery asp.net-mvc forms twitter-bootstrap

我有一些屏幕具有重复的复杂UI功能。即下拉A触发对我的控制器的JSON调用,该控制器根据下拉A中选择的值填充下拉B和C中的值。

所以,在屏幕上,我放下A,然后放下B和C.

这是3个屏幕上重复的UI代码(很快就会增长到5个)。但是他们使用相同的Controller调用来完成填充。

有没有办法可以创建局部视图,我可以将其放在一个表单中(表单通过普通的表单帖子提交),然后可以使用所有其他值的值传回选择的值表单提交的项目?部分视图会有标记,以及我用来调用控制器的Javascript吗?

我不确定我是否可以在表格帖子中包含局部视图中的值,并将它们提供给控制器。

我已经开始研究EditorTemplates,但我所拥有的只是模板的模型:

public class AccountCombinationTemplateModel
{
    public int SourceEntityId { get; set; }
    public int DestinationEntityId { get; set; }
    public int EntityEventTypeId { get; set; }

    public List<SelectListItem> Accounts { get; set; }
    public List<SelectListItem> ThirdParties { get; set; }

}

和一个空的AccountCombinationTemplate.cshtml文件。不确定我是否需要控制器等。

我的父模型(我用于视图的主模型)现在引用上面创建的新模型:

public AccountCombinationTemplateModel AccountModel { get; set; }

因此,父模型中的所有属性都已移入AccountCombinationTemplateModel。

在我的观点中,我现在有:

@Html.EditorForModel(Model.Details.AccountModel)

这是在视图上,我希望我的Drop Drop出现。

我在View \ Shared \ EditorTemplates文件夹中创建了一个名为AccountCombinationTemplate.cshtml的新空视图。

该观点如下:

@model BasicFinanceUI.Models.AccountCombinationTemplateModel
<div class="row">
    <div class="form-group col-xs-12 col-lg-3 divAccounts">
        @Html.LabelFor(x => x.EntityEventTypeId)
        @Html.DropDownListFor(x => x.EntityEventTypeId, Model.EntityEventTypes, new { @class = "EntityEventTypeId form-control", @onchange = "changeDisplay(this)" })
    </div>
    <div class="form-group col-xs-12 col-lg-5 divAccounts">
        @Html.LabelFor(x => x.SourceEntityId)
        @Html.DropDownListFor(x => x.SourceEntityId, Model.Sources, new { @class = "SourceEntityId form-control" })
    </div>
    <div class="form-group col-xs-12 col-lg-5 divAccounts">
        @Html.LabelFor(x => x.DestinationEntityId)
        @Html.DropDownListFor(x => x.DestinationEntityId, Model.Destinations, new { @class = "DestinationEntityId form-control" })
    </div>
</div>

我是现有的控制器,我在上面添加了新的EditorModel作为视图主模型的属性,并填充了它及其属性。

但是当我运行屏幕时,我有@Html.Edit ...,没有任何内容呈现。也没有错误。它好像无法找到视图?

0 个答案:

没有答案