0

ユーザーが別のドロップダウンリスト(ddlCompany)を変更したときに、ドロップダウンリスト(ddlSite)を変更したい。

そのため、新しい項目を ddlsite ドロップダウン リストに追加する方法がわかりません。

Ajax 関数

function getSite(companyID) {
    alert(companyID);
    $.ajax({
        type: 'POST',
        dataType: 'html',
        url: '@Url.Action("SiteList", "Site")',
        data: ({ ComID: companyID }),
        success: function (result) {
            alert(result);
            $('#SiteList').html(result);
        },
        error: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.status);
            alert(thrownError);
        }
    });
}

私の見解

@Html.DropDownList("ddlCompany", ViewData["AllCompany"] as SelectList, "--Select Item--", new { @onchange = "getSite(this.value);" })
<div id="SiteList">
    @Html.Partial("_siteList", SiteList)
</div>

これは私のコントローラーです

public ActionResult SiteList(int ComID)
{
    var siteQuery = from s in db.tblSites
                    orderby s.SiteName
                    where s.FKComId == ComID
                    select s;
    IEnumerable<SelectListItem> AllSite = new SelectList(siteQuery, "PKSiteID", "SiteName");
    ViewBag.AllSite = siteQuery;

    return PartialView("_siteList", siteQuery);
}

私の部分的な見方

@model SKG_website.Models.tblSite

@{
    ViewBag.Title = "_siteList";
    var allSites = ViewBag.AllSite as IEnumerable<SKG_website.Models.tblSite>;  
}

<div id="siteList" class="editor-field">    
    @Html.DropDownListFor(model => model.PKSiteID, new SelectList(allSites, "PKSiteID", "SiteName")) 
</div>  

AJAX 関数で sslsit ドロップダウン リストを割り当てる方法がわかりません。どうすればいいのですか?

4

0 に答える 0