ajax를 사용하여 작업 방법으로 양식 데이터를 보내려고하지만 작동하지 않습니다. 아약스없이 시도하면 완벽하게 작동합니다. 인터넷을 검색했지만 적절한 해결책을 찾지 못했습니다. 제 코드를 공유하여 알려드립니다.ajax를 사용하여 asp.net mvc 4 매개 변수를 보낼 수 없습니다
HTML :
<form action="/sp/operate?id=38" id="PartialFormSubmit" method="post">
<table id="MainTablePartial">
<thead>
<tr>
<th style="width: 8px;">
<input type="checkbox" id="selectAll" />
</th>
<th>
Part No
</th>
<th>
MFG
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input checked type="checkbox" name="CheckBox" class="checkboxes" />
</td>
<td>
<input type="text" name="PartNumber" id="PartNumber0" readonly value="2005137-2" style="width:180px;" />
</td>
</tr>
<tr>
<td>
<input checked type="checkbox" name="CheckBox" class="checkboxes" />
</td>
<td>
<input type="text" name="PartNumber" id="PartNumber0" readonly value="2005137-2" style="width:180px;" />
</td>
</tr>
<tr>
<td>
<input checked type="checkbox" name="CheckBox" class="checkboxes" />
</td>
<td>
<input type="text" name="PartNumber" id="PartNumber0" readonly value="2005137-2" style="width:180px;" />
</td>
</tr>
</tbody>
</table>
<button type="submit" name="request" value="Quote" class="btn yellow">Send Quote</button>
<button type="submit" name="request" style="margin-left:220px;" value="NoStock" class="btn red box">No Stock</button>
</form>
jQuery를 :
$("#PartialFormSubmit").on('submit', function (e) {
e.preventDefault();
var dd = $(this).serialize();
$.ajax({
type: "Post",
url: $(this).attr("action"),
dataType: "json",
contentType: "application/json; charset=utf-8",
cache: false,
data: JSON.stringify(dd),
success: function (data) {
alert(data);
},
error: function (jqr, errorStatus, errorThrow) {
alert("Some Error Occurred! ");
}
});
return false;
});
MVC 작업 : 내가 아약스를 통해 양식을 보내는 경우
[Route("operate")]
[HttpPost]
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult PerformOperation(int? id, List<TicketDetail> ticketDetail, string request)
{
return Json("message",JsonRequestBehavior.AllowGet);
}
내가 아약스하지 않고, 널 (null)로 "요청"을 받고 있어요 그것은 효과가있다. 그것은이다
시도 스티븐 코드
$('button[type="submit"]').on('click', function (e) {
e.preventDefault();
var dd = $(this).serializeArray();
dd.push({ request: $(this).val() })
$.ajax({
type: "Post",
url: $(this).attr("action"),
dataType: "json",
contentType: "application/json; charset=utf-8",
cache: false,
data: JSON.stringify(dd),
success: function (data) {
alert(data);
},
error: function (jqr, errorStatus, errorThrow) {
alert("Some Error Occurred! ");
}
});
return false;
});
: 나에게
===================
UPDATE를 안내하세요 그냥 오류 함수를 호출 "일부 오류가 발생했습니다!"
감사합니다. 이 문제를 해결하는 방법? – Anony
제출 버튼을 클릭하고 name = "request"로 숨겨진 입력을 사용하고'serialize'를 호출하기 전에 값을 설정하도록 이벤트 핸들러를 연결하십시오. – Igor
그럼'var dd = $ (this) .serializeArray(); dd.push ({request : someValue}); '를 사용할 수 있습니다. 그러나 보낼 버튼의 값은 어떻게 알 수 있습니까? 폼의'.submit()'이벤트가 아닌'.click()'이벤트를 처리해야합니다. –