首页 > 解决方案 > 无法使用 Asp.net Mvc Json 在下拉菜单上加载数据

问题描述

我正在使用 Asp.net Mvc Json 创建一个简单的库存控制系统。当我试图加载类别数据时。类别数据未加载到下拉菜单中。到目前为止我尝试过的代码连同屏幕截图一起附在下面。 在此处输入图像描述

表格设计

<div class="card-action">
    <div class="form-group">
        <label class="form-label">Category</label>
        <select class="form-control" id="category" name="category"
                            placeholder="Category" required>
            <option value="">Please Select</option>
        </select>
    </div>
    </div>

jQuery

getCategory();

function getCategory() {
    $.ajax({
        type: 'GET',
        url: '/product/Getcategory',
        dataType: 'JSON',
        success: function (data) {

            console.log(data);
            for (var i = 0; i < data.length; i++) {
                $('#category').append($("<option/>", {
                    value: data[i].id,
                    text: data[i].cat_name,
                }));
            }

        },
        error: function (xhr, status, error) {
            alert(xhr.responseText);

        }

    });  
}

控制器

public class ProductController : Controller
{

    aspoEntities db = new aspoEntities();
    // GET: /Product/
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult Getcategory()
    {
        using (aspoEntities db = new aspoEntities())
        {
            var category = db.categories.ToList();
            return Json(new { data = category }, JsonRequestBehavior.AllowGet);
        }
    }

}

标签: asp.net-mvc

解决方案


将您的控制器更改为

public class ProductController : Controller
{
    // GET: /Product/
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult Getcategory()
    {
        aspoEntities db = new aspoEntities()
        var category = db.categories.ToList();

        return Json(category, JsonRequestBehavior.AllowGet);
    }

}

推荐阅读