根据MVC列表框和复选框的值更改标记元素

Change markup elements based on value of MVC Listbox and Checkbox

本文关键字:元素 列表 MVC 复选框 根据      更新时间:2024-05-25

假设我的MVC视图中有以下标记:

<div class="row">
            <div class="col-xs-6">
                <label>UI Element:</label>
                @Html.DropDownListFor(m => m.SelectedUIItem, Model.UIItems)
            </div>
            <div class="col-xs-6">
                @Html.LabelFor(m => m.UseWholeMarkup)
                @Html.CheckBoxFor(m =>m.UseWholeMarkup)
            </div>
            </div>

我想取下拉框和复选框的值,并在不回发的情况下动态更改这些元素下面的显示内容。我需要使用JQuery/JavaScript吗?怎样

视图模型为:

 // DropDownList
        public string SelectedUIItem { get; set; }
        public IEnumerable<SelectListItem> UIItems { get; set; }
        // Checkbox
        [DisplayName("Use Whole Markup ")]
        public bool UseWholeMarkup { get; set; }

下拉列表中填充了:

List<SelectListItem> listUIItems = new List<SelectListItem>();
            // DropDownList
            SelectListItem selList2 = new SelectListItem
            {
                Text = "HEADER",
                Value = "HEADER",
                Selected = false
            };
            listUIItems.Add(selList2);
            selList2 = new SelectListItem
            {
                Text = "BODY",
                Value = "BODY",
                Selected = false
            };
            listUIItems.Add(selList2);
            // DropDownList
            selList2 = new SelectListItem
            {
                Text = "FOOTER",
                Value = "FOOTER",
                Selected = false
            };
            listUIItems.Add(selList2);
            UIItemsViewModel viewModel = new UIItemsViewModel
            {
                UIItems = listUIItems
            };

我认为"不回发"是指不重新加载页面。很好地使用AJAX可能需要POST,但它不会导致页面重新加载。无论如何,是的,如果你想在不重新加载整个页面的情况下更改页面的一部分,你必须使用JavaScript。如果您想通过从服务器检索到的内容来更改该部分,那么特别地,您必须使用AJAX。