gpt4 book ai didi

c# - DropDownList 未按预期运行

转载 作者:太空宇宙 更新时间:2023-11-03 13:19:17 24 4
gpt4 key购买 nike

我的 DropDownListFors 有问题,希望您能帮助我。我猜这是您知道或不知道的事情之一。

问题是我的数据库中有一个国家/地区表,其中包含国家/地区列表。我希望下拉列表的行为是在我的地址表中创建一个外键引用,指向下拉列表中选择的县。我得到的行为是我的 Address 表中的外键指向 Country 中的一个新条目,这是完全不需要的。

谁能解释一下如何做到这一点?我不确定你们希望看到什么代码,所以如果您能提供帮助,请告诉我。

=== 更多信息 ===

好的,我有一个像这样的 View 模型类:

public class CountryViewModel
{
public int CountryId { get; set; }
public string Name { get; set; }
}

在我看来,我有一个这样的下拉列表:

@Html.DropDownListFor(m => m.LegalEntity.Address.Country.CountryId,
new SelectList( Model.LegalEntity.Address.Country,
"CountryId", "Name", Model.LegalEntity.Address.Country.CountryId),
new { @class = "form-control" })

请注意,第二行当前不起作用:我不知道如何将整个国家/地区列表放入其中。

我的法律实体 View 模型如下所示:

public class LegalEntityViewModel
{
[Key]
public int LegalEntityID { get; set; }
public virtual AddressViewModel Address { get; set; }
public virtual TechnicalContactViewModel TechnicalContact { get; set; }
}

我的地址 View 模型如下所示:

public class AddressViewModel
{
[Key]
public int AddressID { get; set; }
...
[Display(Name = "Country")]
public virtual CountryViewModel Country { get; set; }
}

我想要的行为是让所有国家/地区填充下拉列表,并在我的 LegalEntityViewModel.AddressViewModel.CountryViewModel 中结束所选国家/地区。

帮助!我整天都在摆弄这个和重构!

期待您的回复。

中号

最佳答案

有多种方法可以做到这一点。例如,您可以在 AddressViewModel 中加载国家/地区列表。

public class AddressViewModel
{

[Display(Name = "Country")]
public int SelectedCountryId { get; set; }

public IEnumerable<SelectListItem> Countries { get; set; }
}

然后在你看来这样做

@Html.DropDownListFor(m => m.SelectedCountryId , new SelectList(Model.Countries , "Value", "Text"))

您还可以使用 Javascript 加载您的国家/地区列表。

$(document).ready(function () {
$.ajax({
type: 'POST',
url: '@Url.Action("GetCountries")', <--This will be a method in your controller that brings back the Countries,
success: function (results) {
var options = $('#SelectedCountryId');
$.each(results, function () {
options.append($('<option />').val(this.CountryId).text(this.CountryName));
});
}
});

public class CountryViewModel
{
public int CountryId {get;set;}
public int CountryName {get;set;
}

在你的 Controller 中

    [HttpPost]
public JsonResult GetCountries()
{
var countries = //some method to get the countries for a database or something
var countriesList = countries .Select(x => new CountryViewModel { CountryId = x.CountryId, CountryName = x.CountryName }).ToList();
return this.Json(countriesList );
}

关于c# - DropDownList 未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24942068/

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