2013-10-11 39 views
0

不工作我已经采取了实体模型。我需要绑定第二下拉列表基于第一dropdownlist.I能够将第一下拉选择值传递给控制器​​操作,但我是没能在第二ropdownlist.Here显示值是我的看法代码,COGPHome.cshtml级联下拉菜单在asp.net mvc4(剃刀)

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#productDetails').change(function() { 
     //var productId = document.getElementById('ProductDetails'); 
     var productId = $(this).val(); 
     var prod = { ProductId: productId }; 
     $.ajax({ 
      url: '/COGP/GetProductFamily', 
      type: 'POST', 
      data: prod, 
      success: function (data) {     

      } 
     }); 
    }); 
}) 

<h2>@ViewBag.Title</h2> 
<div id="dvfilter"> 
<table align="center"> 
    <tr> 
     <td> 
      @Html.Label("Product:") 
     </td> 
     <td> 
      @Html.DropDownList("productDetails", "---select---") 
     </td> 
     <td> 
      @Html.Label("ProductFamily:") 
     </td> 
     <td>    
      @Html.DropDownList("productFamily", "---select---")     
     </td> 
    </tr> 
</table> 

下面是控制器代码

public class COGPController : Controller 
{ 
    COGPEntities objEnt = new COGPEntities(); 
    public ActionResult COGPHome() 
    { 
     List<refProduct> objListproducts = new List<refProduct>(); 
     objListproducts = (from c in objEnt.refProducts select c).ToList(); 

     ViewData["productDetails"] = new SelectList(objListproducts, "ProductId", "Product"); 
     ViewData["productFamily"] = new SelectList(string.Empty); 

     return View(); 
    } 

    public ActionResult GetProductFamily(int productId) 
    { 
     List<refProductFamily> objListfamily = new List<refProductFamily>(); 
     objListfamily = (from f in objEnt.refProductFamilies select f).ToList();    
     ViewData["productFamily"] = new SelectList(objListfamily, "ProductFamilyId", "ProductFamily");    
     return View(); 

    } 
} 
+0

您是否获得AJAX叫什么名字?如果是,那么什么是成功?你用'console.log(data)'检查过吗? –

+0

我们试图保持成功的戒备,但它并没有解雇(我的意思是它不会成功的方法)。在浏览器控制台中,我收到了这个错误“POST http:// localhost:15229/COGP/GetProductFamily 500(Internal Server Error)”。 –

回答

0

试试这个: Script

<script type="text/javascript"> 
    $(document).ready(function() { 
    $("#ProductName").change(function() { 
    firstDDLValue = $("#ProductName").val(); 
     $.post("@Url.Action("ItemList", "Admin")", {fstValue: firstDDLValue }, function (result) { 
     var select = $("#ItemId"); 
     select.empty(); 
     select.append($('<option/>', {value: '0', text: '--Select--' })); 
     $.each(result, function (index, Data) { 
     select.append($('<option/>', { 
     value: Data.Value, 
     text: Data.Text 
      })); 
     }); 
     }); 
     }); 
    }); 
    </script> 

控制器

public JsonResult ItemList(string fstValue) 
{ 
PurchaseStock PS = new PurchaseStock(); 
    int ProductId = 0; 
    if (fstValue != "") 
    ProductId = Convert.ToInt32(fstValue); 
    var result = PS.GetItemForDrop(Convert.ToInt32(ProductId)); 
    IList<SelectListItem> Data = new List<SelectListItem>(); 
    for (int i = 0; i < result.Count; i++) 
    { 
    Data.Add(new SelectListItem() 
    { 
     Text = result[i].Text, 
     Value = result[i].Value, 
    }); 
    } 
return Json(Data, JsonRequestBehavior.AllowGet); 
} 

在View:

<select id="ProductName" name="ProductName" class="dropdownlist"> </select>//First Dropdown list 
<select id="ItemId" name="ItemId" class="dropdownlist">//SecondDropdown