美好的一天!我是asp.net mvc中的新手,需要將JSonResult數據傳遞給控制器中的方法。在我查看,我有這個表:通過JSon結果到控制器方法
<table id="tbl_orderItems" class="table table-striped table-bordered table-hover dt-responsive nowrap" cellspacing="0">
<thead>
<tr>
<th>Item Code</th>
<th>Quantity</th>
<th>Unit</th>
<th>Item Description</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
@if (TempData["listOrder"] != null)
{
foreach (var items in TempData["listOrder"] as List<ebms.ViewModels.OrderItems>)
{ @Html.HiddenFor(modelItem => items.Id, new { @id = "productId" })
<tr>
<td id="productCode">@items.PRODUCT_CODE</td>
<td contenteditable="true" id="quantity">@items.QUANTITY_ORDERED
<input id="save" type="button" value="Save" />
</td>
<td id="unit">@items.MEASUREMENT_NAME</td>
<td id="itemDesc">@items.ITEM_DESCRIPTION</td>
<td id="status">@items.tmpStatus</td>
<td>
@Html.ActionLink("Remove", "Remove", new { id = items.Id },
new { onclick = "return confirm('Are sure want to remove?');" })
</td>
</tr>
}
}
</table>
此表的值從另一個表來。但是一列,即數量具有值= 0,因爲它將被輸入到表格本身中。
因此,我製作了QUANTITY_ORDERED列可編輯。然後,它會通過這個傳遞值:
<script>
$(document).ready(function() {
$("#save").prop("disabled", true);
$("div").on('input', function() {
$("#save").prop("disabled", false);
});
$("#save").click(function() {
var modifiedQuanity = {};
modifiedQuanity.Id = $("#productId").text();
modifiedQuanity.QUANTITY_ORDERED = $("#quantity").text();
$.post("/Sales/Save", modifiedQuanity, function (msg) {
$("#save").prop("disabled", true);
$("#msg").html("<strong>" + msg + "</strong>");
});
});
});
</script>
在我的控制,我有這個JSonResult方法保存這是應該接受QUANTITY_ORDERED的視圖中的價值。
public JsonResult Save(ORDER_DETAILS obj)
{
using (ApplicationDbContext db = new ApplicationDbContext())
{
ORDER_DETAILS existing = db.ORDER_DETAILS.Find(obj.PRODUCT_ID);
existing.QUANTITY_ORDERED = obj.QUANTITY_ORDERED;
db.SaveChanges();
return Json("Order saved successfully!");
}
}
然後我需要將JsonResult數據傳遞給控制器的方法爲最後保存。
但是我的問題是,它似乎沒有將值傳遞給保存方法。我無法弄清楚如何將JsonResult數據傳遞給控制器方法。有人可以幫我解決這個問題嗎?我錯過了什麼?
您正在從browswer'modifiedQuanity.Id'發佈'Id',但在控制器ORDER_DETAILS中使用'PRODUCT_ID' existing = db.ORDER_DETAILS.Find(obj.PRODUCT_ID);' – shakib
@shakib我使用** Id **在我看來,因爲它是我從中獲取值的PRODUCT表的PK。然後我傳遞該ID,但我使用PRODUCT_ID,因爲這是在** ORDER_DETAILS **模型中調用的方式。 –
@shakib您能否提出另一種存儲內容可編輯值的方法,然後將該值傳遞給控制器? –