这是我到目前为止: @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
}
