javascript - 在 ASP.NET Core MVC 应用程序中的控制器和 JavaScript 之间传递参数?
问题描述
我有一个带有视图、控制器和一个小的 JavaScript 文件的 ASP.NET Core MVC 应用程序。当用户单击列表框中的项目时,将调用 JavaScript 函数。JavaScript 调用控制器上的函数,控制器创建 SelectedListItem 列表并设置“Selected”、“Value”和“Text”的值。'选定' 设置为true。
我注意到的是,当 JavaScript 函数接收到数据时,一切都是正确的,但“已选择”字段设置为false '我不确定这是怎么回事。感谢您的帮助!
看法
<div class="form-group">
@Html.LabelFor(x => Model.SelectedBaselines, htmlAttributes: new { @class = "col-form-label" })
@Html.ListBoxFor(x => Model.SelectedBaselines, new SelectList(Model.BaselinesList, "Value", "Text"), htmlAttributes: new { @class = "form-control", id = "baselines", @multiple = true, size = "10", style = "width:200px;" })
@Html.ValidationMessageFor(x => Model.SelectedBaselines, "", new { @class = "text-danger" })
</div>
控制器
public IEnumerable<SelectListItem> GetSelectedBaselines(string meterId)
{
IQueryable<SelectListItem> baselines =
from mlookup in _dbContext.MeterBaselineLookup.AsNoTracking()
join baseline in _dbContext.MeterBaseline on mlookup.MeterBaselineId equals baseline.Id
where mlookup.MeterId == Convert.ToInt32(meterId)
orderby baseline.Id
select new SelectListItem
{
Selected = true,
Value = baseline.Id.ToString(),
Text = baseline.Name
};
return new SelectList(baselines, "Value", "Text");
}
JavaScript
$('#meters').change(function() {
var url = "/Meters/GetSelectedBaselines";
$.getJSON(url,
{ meterId: $("#meters option:selected").val() },
function(data) {
$('#baselines option').prop('selected', false); // Clear selected baselines
var len = $('#baselines option').length;
for (var i = 1; i <= len; i++) {
$("#baselines option[value=" + i + "]").attr("selected", true);
}
});
});
解决方案
第 4 个参数用于存储选择的值,请尝试:
return new SelectList(baselines, "Value", "Text",baselines[0].baseline.Id);
或者只是这样:
return new SelectList(baselines, "Value", "Text");
推荐阅读
- azure - 在 Azure DevOps 管道中,我可以同时使用我的免费 1800 分钟和付费管道吗
- xaml - XAML 的 MouseOver 触发器的进入/退出操作在触摸 UI 元素的边缘时无限循环
- javascript - JQuery 与 Django 基础 .js 文件冲突
- json - 解析逗号分隔的 JSON 文件
- php - 统一查询字符串中相同的 URL 参数
- javascript - 无法自动启动动画
- linux - MongoDB 转储和恢复
- php - SMTP 错误:220 smtpauth.net4india.com ready 无法使用 PHP SMTP 发送电子邮件。您的服务器可能未配置
- python - 将列表加入 Pandas 框架 - 我是否保留了订单?
- c++ - 在 C++ 中使用命名空间指令的正确方法