Использование $ .ajax или $ .post для вызова метода контроллера MVC 5

Я пытаюсь настроить то, что должно быть очень простым вызовом со страницы MVC к контроллеру с использованием JavaScript. Это мой контроллер:

Imports System.Web.Mvc

Namespace Controllers
    Public Class DataController
        Inherits Controller

        Function Index() As ActionResult
            Return View()
        End Function

        <HttpPost>
        Function SaveData(payload As String) As String
            If payload IsNot Nothing AndAlso payload.Length > 0 Then
                Return "Good"
            Else
                Return "Bad"
            End If
        End Function

    End Class
End Namespace

это мой вид (Index.vbhtml):

@Code
    ViewData("Title") = "Index"
End Code

<h2>Index</h2>

@Code
    Html.BeginForm()
    @:<a href="#" onclick="SaveData();">Save Data</a>
    Html.EndForm()
End Code

и это мой JavaScript (включен через файл _layout.vbhtml):

function SaveData() {

    var payload = "TEST_DATA_GOES_HERE";

    // Calls controller correctly but data is null
    $.ajax({
        url: "/Data/SaveData",
        type: "POST",
        processData: false,
        dataType: String,
        data: { payload: payload }
    })
    .done(function () { alert('Application saved.'); })
    .fail(function () { alert('Application failed to save.'); });

    // Returns a 500 error
    $.post("/Data/SaveData", { Payload: payload }, function (data) { alert('Application saved. ' + data); }, "String");

    // Calls controller correctly but data is null
    $.post("/Data/SaveData", payload, function () { alert('Application saved.' + data); }, "String");
}

Все хорошо подключается при отладке, кромеpayload переменная прибывает какNothing вSaveData функция. Я пытался использовать$.post но со схожими проблемами и всеми ссылками, которые я нашел на использование любого метода, просто предполагают, что он будет работать впервые без ошибок и не будет никаких советов по устранению неполадок.

Как вы настраиваете$.ajax или же$.post функции для правильного вызова контроллера и передачи простой строки?

Ответы на вопрос(2)

Ваш ответ на вопрос