2016年1月7日 星期四

【ASP.NET MVC】Internal Server Error when JQuery Ajax post

用 JQuery Ajax post 時候發現沒 cue 到後端,Console 出
POST http://localhost:XXXX/Controller/Action 500 (Internal Server Error)

實際送出的程式碼
$.ajax({
    url: '/Question/UpdateThumbPartial',
    data: { id: $('input[name="id"]').val(), isThumbUp: true },
    type: 'post',
    cache: false,
    success: function (response) {
        console.log(response);
    }
});

F12開發者> Network> 找到剛剛發的 Ajax post
抓到兇手,所以其實是 id 傳了 null 進去,也就是說 $('input[name="id"]').val() 取到 null,可是為什麼呢?

@Html.HiddenFor(model => model.Id)
因為 prop 的命名原則是大寫,所以造出來的 hiddenfield name 也會是大寫,key錯就抓不到值了。
其他還碰過 Action 名打錯、參數跟 Controller 引數不合也會有類似的問題。

沒有留言:

張貼留言