gpt4 book ai didi

json - 如何使用JSon填充@ html.dropdownlist mvc帮助器

转载 作者:行者123 更新时间:2023-12-04 13:15:02 24 4
gpt4 key购买 nike

我有一个JSon加载的<select>。但是我想使用“@ html.dropdownlist助手”代替。我的Json是:

function LoadSites() {
$("SelectSite").html("");
$.getJSON("/Pedido/GetSite", null, function (data) {
$("#SelectSite").append("<option value=0>Selecione...</option>");
$.each(data.Result, function (index, site) {
$("#SelectSite").append("<option value='" + site.Id + "'>" + site.Nome + "</option>");
});
});

这个杰森填充了这个...
<select id="SelectSite"></select>

我的 Controller :
        [HttpGet]
public JsonResult GetSite()
{
Repository<Site> siteRepo = new Repository<Site>( unitOfWork.Session );
return this.Json( new { Result = siteRepo.All() }, JsonRequestBehavior.AllowGet );
}

我希望我的代码更具可重用性和自我记录性。
我如何使用下拉列表将对象“site”从JSon发送到“cshtml”,以执行类似 @html.dropdownlist(site.id, site.Nome)的任务?

有办法吗?

Tks伙计们。

最佳答案

您认为:

@Html.DropDownListFor(x => x.SiteId, new SelectList(Enumerable.Empty<SelectListItem>()))

其中 SiteId是您的 View 模型的属性,在提交表单时,它将接收选定的站点ID。

然后您可以使用AJAX填充此下拉列表:
$(function() {
$.getJSON('@Url.Action("GetSite", "Pedido")', function(result) {
var ddl = $('#SiteId');
ddl.empty();
$(result).each(function() {
ddl.append(
$('<option/>', {
value: this.Id
}).html(this.Nome)
);
});
});
});

以及将返回JSON数据的 Controller 操作:
public ActionResult GetSite()
{
var sites = new[]
{
new { Id = "1", Nome = "site 1" },
new { Id = "2", Nome = "site 3" },
new { Id = "3", Nome = "site 3" },
};
return Json(sites, JsonRequestBehavior.AllowGet);
}

关于json - 如何使用JSon填充@ html.dropdownlist mvc帮助器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5246590/

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