javascript - 如何刷新视图的这一部分并且只显示所需的单选按钮
问题描述
再会。我有一个提供视图表单index.cshtml的ViewModel,因为这个ViewModel包含表单中将显示为可选选项的模型列表,SelectOptions,radios,DropDownList,现在......我需要根据 SelectOptions 加载这些收音机,我已经进行了相关查询,BackEnd 返回了可能是单选按钮选项的对象列表,但问题是:如何刷新视图的这一部分并且只显示所需的单选按钮?
视图代码:
1.1:多选代码:
<div id="example" role="application"> <div class="demo-section k-content"> @(Html.Kendo().MultiSelectFor(avm => avm.alarmModel.MeasureSpots).Name("measureSpotsMultiSelect") .Placeholder("Seleccione Punto de Medida") .AutoClose(false) .DataTextField("Name") .BindTo(Model.measureSpotsList) .Value(new MultiSelectList(Model.measureSpotsList, "Id", "Name")) ) </div> </div>
1.2:动态单选按钮的代码
<div id="radiosMeasureTypes" class="flexbox-row"> @foreach (var mtl in Model.measureTypesList) { @(Html.Kendo().RadioButtonFor(avm => avm.alarmModel.Rules[0].MeasureType.Id).Name("MeasureType") .Label(mtl.Name).Value(mtl.Id) .HtmlAttributes(new { data_measuretype = "Measure Type", data_measuretype_msg = "Seleccione un valor." }) ) } </div>
向控制器执行 POST 请求的 JS 代码
$.ajax({ url: '/Alarms/GetMeasureTypesListByMeasureSpots', type: 'POST', data: JSON.stringify(MeasureSpots), dataType: 'json', contentType: 'application/json; charset=utf-8', error: function (xhr) { $("#radiosMeasureTypes").load(location.href + " #radiosMeasureTypes"); }, success: function (xhr) { $("#radiosMeasureTypes").load(location.href + " #radiosMeasureTypes"); }, async: true, processData: false });
Controller 在收到 JS 请求后,将其重定向到 BackEnd,并在获得响应后,将结果映射到模型列表。
public List<MeasureTypeModel> GetMeasureTypesListByMeasureSpots(List<MeasureSpotModel> measureSpots) { RestClient client = new RestClient(ConfigurationManager.AppSettings["BackUrl"]); RestRequest request = new RestRequest(Method.POST); request.Resource = $"api/MeasureTypes/GetMeasureTypesByMeasureSpotsId"; request.AddJsonBody(measureSpots); IRestResponse response = client.Execute(request); System.Diagnostics.Trace.WriteLine($"GetMeasureTypesListByMeasureSpots - Response Status:{response.StatusDescription}"); bool IsResponseOk = CrosscuttingMethods.ValidateResponseStatus(response.StatusCode); if (IsResponseOk && response.Content.Length > 0) { string content = response.Content; JArray measureTypesArray = JArray.Parse(content); List<MeasureTypeModel> measureTypes = new List<MeasureTypeModel>(); foreach (var item in measureTypesArray) { MeasureTypeModel measureType = new MeasureTypeModel { Id = (int)item["Id"], Name = (string)item["Name"], Description = (string)item["Description"] }; measureTypes.Add(measureType); } return measureTypes; } else { return null; } }
解决方案
推荐阅读
- python - 缺少 Spyder 依赖项 qtconsole
- php - PHP:恢复转义的Unicode字符
- excel - 在excel中获取VBA代码以查找文件并打开它
- python - Webscraping,在scrapy试图到达某个URL
- c - 将 int 分配给数组时出现分段错误
- url - 制作一个重定向到您上次打开的 IE 页面的 URL?
- java - 如何在 Rally 的 java 中查询从故事定义到完成的总花费时间?
- android - 从 Kotlin 中的片段获取用户在 AlertDialog 上的输入
- mysql - How to extract hour from timestamp?
- swiftui - 如何在 SwiftUI 中比较两个形状?