这是我到目前为止: @Html.DropDownList("id", (SelectList)ViewBag.Values, new { onchange = "UpdateProduct(this);" })script language="JavaScript" $('#id').on('change', function () { var data = { prodID: 5, catID: 8 }; // added test va
@Html.DropDownList("id", (SelectList)ViewBag.Values, new { onchange = "UpdateProduct(this);" }) <script language="JavaScript"> $('#id').on('change', function () { var data = { prodID: 5, catID: 8 }; // < added test values $.post('GiftList/UpdateProduct', data, function (responseData) { //callback function }); }); </script>
这是我更新的操作方法:
[HttpPost] public ActionResult UpdateProduct(int prodID, int catID) { ........ product.Category= catID; _productService.UpdateProduct(product); ...
我只是不知道如何“连线”这一切.
原始问题:
我有一个DropDown,当一个项目被选中时,会运行一些代码
并更新数据库中的Product表.
此下拉列表包含类别表(id和名称)中的项目:
@Html.DropDownList("id", (SelectList)ViewBag.Values, new { onchange = "UpdateProductsDB(this);" })
我需要传入所选类别的’id’字段.
我还需要从Product表中传递Product Id以进行更新.
我可以通过以下方式访问View中的产品ID(‘id’):
@foreach (var item in Model.Products) { .... item.Id
我添加了一个隐藏的字段:
<input id="item_Id" name="item.Id" type="hidden" value="43" />
MVC甚至可以实现这一点吗?从我的搜索,似乎jQuery会做到这一点.
请尽可能多地提供详细信息,因为我根本不了解jQuery.
<tr><span >Panasonic HDC-SDT750K</span> <input id="item_Id" name="item.Id" type="hidden" value="41" /> </tr> <tr> <td width="125px" height="20px" align="right">Model: </td> <td width="325px" align="left"> <span style="display:inline-block;width:325px;"></span> </td> ................ <select id="id" name="id" onchange="UpdateProductsDB(this);"> <option value="5">Accessories</option> <option selected="selected" value="1">Desktops</option> <option value="8">Camera, photo</option> <option value="9">Cell phones</option> <option value="12">Jewelry</option> . . . </select> </td> <td ><a href="/DBMJ33/GiftList/Edit/id41">Edit</a></td> <td ><a href="/DBMJ33/GiftList/Delete/id41">Delete</a>这应该让你走上正轨.
//your javascript $('#myDropdown').on('change', function(){ var data = {someData : someDataValue, someMoreData : someMoreDatavalue}; $.post('myControllerName/UpdateProduct', data, function(responseData){ //callback function }); }); //in your controller [HttpPost] public ActionResult UpdateProduct(int someData, string someMoreData) { //do something with your data }