gpt4 book ai didi

javascript - 在 ASP.NET Core MVC 应用程序中的 Controller 和 JavaScript 之间传递参数?

转载 作者:行者123 更新时间:2023-12-01 01:07:05 24 4
gpt4 key购买 nike

我有一个 ASP.NET Core MVC 应用程序,其中包含 View 、 Controller 和一个小的 JavaScript 文件。当用户单击列表框中的项目时,将调用 JavaScript 函数。 JavaScript 调用 Controller 上的函数, Controller 创建 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>

enter image description here

Controller

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");
}

enter image description here

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);
}
});
});

最佳答案

尝试在下面返回

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 baselines ;

}

相关问题引用链接:

https://stackoverflow.com/a/25714016/10201850 https://forums.asp.net/t/1382564.aspx?SelectListItem+losting+select+value+in+View+page

关于javascript - 在 ASP.NET Core MVC 应用程序中的 Controller 和 JavaScript 之间传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55520616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com