Jquery 使用ajax从文本框调用带有值的ActionResult。
用户更新的唯一字段是QuantityDelivered,然后用户单击Accept按钮,通过Ajax更新文本框中输入的数字和ShoeOrderItemJquery 使用ajax从文本框调用带有值的ActionResult。,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,用户更新的唯一字段是QuantityDelivered,然后用户单击Accept按钮,通过Ajax更新文本框中输入的数字和ShoeOrderItem @for (int i = 0; i < Model.ShoeOrderItemList.Count(); i++) { <tr> <td class="text-center"> @Html.HiddenFor(model => Model.ShoeOrderItemList[i].Sh
@for (int i = 0; i < Model.ShoeOrderItemList.Count(); i++)
{
<tr>
<td class="text-center">
@Html.HiddenFor(model => Model.ShoeOrderItemList[i].ShoeOrderItemId)
@Html.DisplayFor(model => Model.ShoeOrderItemList[i].ShoeOrderItemId)
</td>
<td class="text-center">
@Html.DisplayFor(model => Model.ShoeOrderItemList[i].LineItemTotal)
</td>
<td class="text-center">
@Html.DisplayFor(model => Model.ShoeOrderItemList[i].ShoeSize.Size)
</td>
<td class="text-center">
@Html.DisplayFor(model => Model.ShoeOrderItemList[i].Shoe.ManufacturingCost)
</td>
<td class="text-center">
@Html.DisplayFor(model => Model.ShoeOrderItemList[i].Quantity)
</td>
<td class="text-center">
@Html.DisplayFor(model => Model.ShoeOrderItemList[i].QuantityOutstanding)
</td>
<td>
@(Html.Bootstrap().TextBoxFor(m => m.QuantityDelivered)
.Placeholder("Quantity Delivered ")
.Prepend("#").Append(Html.Bootstrap()
.Button().Text("Accept").Id("AcceptItem")))
</td>
</tr>
}
我只想使用用户单击按钮AcceptItem时输入的值调用ActionResult
我只想用输入的值调用ActionResult
当用户单击按钮AcceptItem时,将显示该选项
遵循此解决方案-
假设你有以下表格。请为输入字段提供正确的id,注意我做了一个POST操作
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script>
function submitForm() {
jQuery.ajax({
type: "POST",
url: "@Url.Action("Submit")",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ name: $("#quantity").val() }),
success: function (data) {
alert(data.Name);
},
failure: function (errMsg) {
alert(errMsg);
}
});
}
</script>
<input type="text" id="quantity"/>
<input type="button" value="Click" onclick="submitForm()" />
这个动作只会返回一个简单的Person对象(例如,我使用它)
现在,当您单击按钮时-
如果要执行GET操作,那么JQuery代码应该如下所示-
jQuery.ajax({
type: "GET",
url: "@Url.Action("Submit")" + "/" + $("#quantity").val(),
dataType: "json",
contentType: "application/json; charset=utf-8",
data: "", //JSON.stringify({ name: $("#quantity").val() }),
success: function (data) {
alert(data.Name);
},
failure: function (errMsg) {
alert(errMsg);
}
});
}
不要忘记将AllowGet添加到JsonResponse-
public ActionResult Submit(string id)
{
return Json(new Person() { Name = id + " Its Me" }, JsonRequestBehavior.AllowGet);
}
谢谢你的回复。我需要从隐藏字段传递
shoeOrderItemId
,以及用户@Html.DisplayFor(model=>model.ShoeOrderItemList[I].quantity)在文本框中输入的quantity
。最好的解决方案是使用这样的表单吗?
public class Person
{
public string Name { get; set; }
}
jQuery.ajax({
type: "GET",
url: "@Url.Action("Submit")" + "/" + $("#quantity").val(),
dataType: "json",
contentType: "application/json; charset=utf-8",
data: "", //JSON.stringify({ name: $("#quantity").val() }),
success: function (data) {
alert(data.Name);
},
failure: function (errMsg) {
alert(errMsg);
}
});
public ActionResult Submit(string id)
{
return Json(new Person() { Name = id + " Its Me" }, JsonRequestBehavior.AllowGet);
}