2016-04-04 5 views
0

Ich habe eine Liste von Optionsfeldern, die meine Benutzer verwenden, um auszuwählen, wie jemand abgestimmt hat. Ich möchte die Auswahl speichern, wenn sie asynchron erfolgt, damit der Benutzer weiterhin Auswahlen treffen kann, ohne auf die vorherige Auswahl warten zu müssen.Auswahl auf einem Radiobutton asynchron speichern

Idealerweise könnte ich irgendwann einen Indikator aktualisieren, wenn der Speichervorgang abgeschlossen ist.

Ich habe nur 3 Werte, die an die Steuerung der TopicID die VoterID und der SelectionValue

Gibt es einen einfachen Weg, dies zu tun gesendet werden müssen? Ich denke, das sollte einfach sein, aber ich habe kein Glück damit es funktioniert.

[AcceptVerbs("POST")] 
    public async Task<bool> UpdateVoteRecord(int TopicID, int VoterID, string SelectionValue) 
    { 

     bool retval = await Task.Run(() => helper.SaveVoteRecord(TopicID, VoterID, SelectionValue)); 
     return retval; 
    } 

Antwort

1

Sie können auf dem Optionsfeld zum change Ereignisse hören und einen Ajax-Aufruf, um die Auswahl zu speichern. Unter der Annahme, gerenderte HTML-Markup sieht wie folgt aus

<input type="radio" name="someName" class="mySelection" value="1" /> 
<input type="radio" name="someOtherName" class="mySelection" value="2" /> 
<input type="hidden" value="100" id="TopicId" /> 
<input type="hidden" value="25" id="VoterId" /> 

Javascript

$(function(){ 

    $("input.mySelection").change(function(){ 

    var v=$(this).val(); 
    var url="@Url.Aciton("UpdateVoteRecord","YourController")"; 

    $.post(url,{ SelectionValue : v, TopicID : $("#TopicId").val(), 
             VoterID : $("#VoterId").val() },function(res){ 
     //do something with res now; 
     console.log(res); 
     }); 
    }); 

}); 

ich die Url.Action Hilfsmethode verwendet, um die korrekte relative URL zum Aktionsmethode zu erzeugen. Dieser Code funktioniert, wenn sich Ihr Js-Code in einer Rasiereransicht befindet. Wenn sich Ihr Code in einer externen js-Datei befindet, verwenden Sie die erläuterte Methode here.

Verwandte Themen