加载资源失败:服务器响应状态为500(内部服务器错误)MVC JAVASCRIPT

Failed to load resource: the server responded with a status of 500 (Internal Server Error) MVC JAVASCRIPT

本文关键字:服务器 错误 内部 JAVASCRIPT MVC 失败 资源 响应 状态 加载      更新时间:2023-09-26

我试图从JavaScript视图到控制器发布2个参数,但我得到这个错误。不知道为什么…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)); 
    }

,这是我的观点。我已经映射对象到数据库对象,但我能弄清楚为什么我得到这个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>

在AJAX调用中,这样传递数据:

data: JSON.stringify({ playerId: playerId, newTeamId: teamId }),

当你发布数据时,它看起来像这样:

playerId=1&newTeamId=2

但是在AJAX设置中,contentType被设置为'application/json;charset=utf-8',这意味着数据应该以json格式传递。因为数据没有以JSON格式传递,MVC模型绑定器无法完成它的工作并从请求体获取数据(因为它认为有JSON数据沿着妻子,由于contentType)。

当你使用JSON时。字符串化数据将在请求体中像这样传递:

{
    newTeamId: "2"
    playerId: "1"
}