Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我想在MVC DropdownFor中发布下拉文本,而不是值_Javascript_Jquery_Asp.net Mvc_Json_Drop Down Menu - Fatal编程技术网

Javascript 我想在MVC DropdownFor中发布下拉文本,而不是值

Javascript 我想在MVC DropdownFor中发布下拉文本,而不是值,javascript,jquery,asp.net-mvc,json,drop-down-menu,Javascript,Jquery,Asp.net Mvc,Json,Drop Down Menu,我想知道我是否有可能在MVC中发布嵌套下拉列表中的文本值 我已经能够用我的数据库值填充下拉列表,当它选择第一个下拉列表时,它会自动用json结果填充第二个下拉列表。我想发布下拉列表中的文本值,可以吗 这是我的带有JSON调用的控制器 [HttpPost] public ActionResult Index(SchoolRegViewModel model, HttpPostedFileBase Logo) { var queryCountry = _countryState.GetAll

我想知道我是否有可能在MVC中发布嵌套下拉列表中的文本值

我已经能够用我的数据库值填充下拉列表,当它选择第一个下拉列表时,它会自动用json结果填充第二个下拉列表。我想发布下拉列表中的文本值,可以吗

这是我的带有JSON调用的控制器

[HttpPost]
public ActionResult Index(SchoolRegViewModel model, HttpPostedFileBase Logo)
{
    var queryCountry = _countryState.GetAllCountry().Select(s => new SelectListItem
    {
        Value = s.CountryId.ToString(),
        Text = s.CountryName,
        Selected = false
    });
    model.Country = queryCountry.AsEnumerable();

    var country = model.Country.Select(x => x.Text).Single();

    if (ModelState.IsValid)
    {
        try
        {
            ....
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    return View(model);
}

public JsonResult StateList(int? id)
{
    if (id != null)
    {
        var state = _countryState.GetAllState(id.Value);
        return Json(new SelectList(state, "CountryId", "StateName"), JsonRequestBehavior.AllowGet);
    }
    else
    {
        return Json(new { }, JsonRequestBehavior.AllowGet);
    }
}
这是用json结果填充第二个下拉列表的jquery

jQuery(function ($) {

$(function ()
{
    $('#CountryId').change(function () {
        $.getJSON('/Registration/Registration/StateList/' + $('#CountryId').val(), function (data) {
            var items = '<option>-- Select State --</option>';
            $.each(data, function (i, state) {
                items += "<option value = '" + state.Value + "'>" + state.Text + "</option>";
            });
            $('#State').html(items);
            $('#State option:selected').text();
        });
    });
});
})

看法

只需使value参数与您为文本输入的参数相同

new SelectList(state, "StateName", "StateName")
以及:


但它是否仍将发送CountryId以返回状态列表Json??因为我这样做了,但它没有返回状态列表,因为json没有得到ID而不是名称,所以我如何绕过它来发送json的ID和发布数据库的文本??你不能。过账价值就是过账价值。你可以发布id,然后使用id从数据库中查找内容以获取文本,在需要的情况下,但是,如果你想要文本,你必须发布文本。是的,我认为这是可能的,谢谢你的帮助
new SelectList(state, "StateName", "StateName")
items += "<option value = '" + state.Text + "'>" + state.Text + "</option>";