私は MVC を初めて使用しますが、この問題が私を壁に押し上げています。ユーザーがタブを押すか、フォームのテキストボックスにキーを入力すると、jquery ajax 投稿をトリガーする JavaScript があります。
<script type="text/javascript">
$(document).ready(function () {
$('#RmaNumber, #SerialNumber').keydown(function (event) {
if (event.keyCode == 13 || event.keyCode == 9) {
var ri = {
RmaNumber: $('#RmaNumber').val(),
SerialNumber: $('#SerialNumber').val(),
ControlName: event.target.id
}
$.ajax({
type: "POST",
url: "/Invoice/BarcodeScan",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(ri),
dataType: "json",
success: function (data) {
$('#TerminalType').text(data.TerminalType);
}
});
}
});
});
</script>
これが私のコントローラーの外観です。シンプルにするためにコードを削除しました。
public ActionResult Index()
{
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(RepairInvoice ri)
{
}
[HttpPost]
public ActionResult BarcodeScan(string RmaNumber, string SerialNumber, string ControlName)
{
}
ajax ポストバックにより、BarcodeScan と Index アクションの両方が起動します。[AcceptVerbs(HttpVerbs.Post)]
フォームでボタンが押された場合にのみ、上記の Index アクションが 起動するようにします。これは可能ですか、それとも間違った方向に進んでいますか?