【发布时间】:2015-11-01 21:28:11
【问题描述】:
我正在尝试将 2 参数从带有 JavaScript 的视图发布到 Controler,但我收到此错误。不知道为什么。。
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
transfer.js
$(document).ready(function () {
$("#transferPlayerButton").click(function () {
var playerId = document.getElementById("id_player").value;
var teamId = document.getElementById("id_team").value;
$.ajax({
type: 'post',
url: '/Player/TransferPlayer',
data:
{
playerId: playerId,
newTeamId: teamId
},
contentType: 'application/json;charset=utf-8',
dataType: 'json',
success: function (data) {
alert("Success!");
}
});
});
});
控制器
[HttpPost]
public ActionResult TransferPlayer(int playerId, int newTeamId)
{
return Content(string.Format("Player {0} it is now at team {1}.", playerId, newTeamId));
}
这是我的观点。我已将对象映射到数据库 obj,但我无法弄清楚为什么我会收到此 500 错误。需要一些帮助。我是 mvc/javascript 的新手
@model FotballTeamsProject.Models.PlayerModels.PlayerTransferModel
<script src="@Url.Content("~/Scripts/Player/Transfer.js")"></script>
<script type="text/javascript">
var transferUrl= "@Url.Action("TransferPlayer", "Player")";
</script>
<table>
<thead>
<tr>
<th>ID</th>
<th>Nume</th>
<th>Prenume</th>
<th></th>
<th>Skill</th>
<th>Valoare</th>
<th></th>
<th>Echipa Actuala</th>
<th style="margin-right: 10px;">Echipa Viitoare</th>
</tr>
</thead>
<tbody>
<tr>
<td id="id_player">@Model.Player.id_player</td>
<td>@Model.Player.player_firstname</td>
<td>@Model.Player.player_surname</td>
<td></td>
<td>@Model.Player.player_skill</td>
<td>@Model.Player.player_value</td>
<td></td>
<td>@Model.Player.name_team</td>
<td style="text-align: right;">
<select id="id_team">
<option selected="selected" value="0">Fara echipa</option>
@foreach (var teamInfo in Model.Teams)
{
<option value="@teamInfo.Key">@teamInfo.Value</option>
}
</select>
</td>
</tr>
</table>
</tbody>
<p>
<input id="transferPlayerButton" type="button" value="Transfera" />
</p>
【问题讨论】:
-
我不确定这是否是根本原因,但是表格单元格上的 .value 不会为您提供 id_player 的值,您应该改用 innerText。这可能会导致您的帖子中的 playerId 为空。您是否尝试过在 Action 方法上设置断点并进行调试?你的断点命中了吗?如果是,参数的值是多少?
-
是的,我放了一个断点,它没有被命中..
-
首先把你的 js
Transfer.js放在 body 标签结束之前