2017-01-16 4 views
0

I x editierbar und versucht Datum meines ControllerASP.net MVC Ajax-Daten im Controller-Funktion nicht zugreifen kann

x editierbare Code zu schreiben ist

<span class="editable editable-click" title="" data-type="select" data-value="1" data-pk="2" data-url="http://localhost:58250/api/updateeffortitems/save" data-title="Work group" data-source="[{ value: 1, text: 'Project'},{ value: 2, text: 'Service'},{ value: 3, text: 'Process'},{ value: 4, text: 'Training'},{ value: 5, text: 'Others'}]" data-original-title="Project">Project</span>

i jetzt versuchen, den Zugang gesendeten Daten in der folgenden Controller

Public Class UpdateEffortItemsController 
    Inherits ApiController 
    Public Function save(pk As Integer, value As String) As String 

     Dim db As New RA_SQLEntities 

     Dim row As Ra_activity_log 
     row = db.Ra_activity_log.Where(Function(XX) XX.Activity_log_key = pk).SingleOrDefault() 
     row.Comment = value 
     db.SaveChanges() 

     Return "done" 

    End Function 

End Class  

und ich bekam die folgende Fehler

{"Message":"No HTTP resource was found that matches the request URI 'http://localhost:58250/api/updateeffortitems/save'.","MessageDetail":"No action was found on the controller 'UpdateEffortItems' that matches the request."}

ich weiß, dass die Controller-Funktion 2 params und die Ajax-URL muss didnt diese params haben .. aber wenn ich fügen Sie die params auf Ajax-URL, die die params equel statischen Wert und nicht in der Lage zu ändern

bedeuten

was soll ich tun?

+0

müssen Sie [HttpPost] oben zur Methode hinzufügen. So kann es auf Post-Anfrage aufrufen. –

Antwort

0

Sie müssen eine Klasse für die Aktionsparameter erstellen. Hier ist, was die ASP.NET MVC doku sagt:

standardmäßig Web-API die folgenden Regeln verwendet Parameter zu binden:

  • Wenn der Parameter ein „einfacher“ Typ ist, Web-API versucht, Erhalte den Wert aus dem URI. Zu den einfachen Typen gehören die primitiven .NET-Typen (int, bool, double usw.) sowie TimeSpan, DateTime, Guid, decimal, und string sowie ein beliebiger Typ mit einem Typkonverter, der eine Zeichenfolge aus konvertieren kann. (Weitere Informationen zu Typkonvertern später.)
  • Bei komplexen Typen versucht die Web-API den Wert aus dem Nachrichtentext mithilfe eines Formatierers vom Typ "Medium" zu lesen.

-Code könnte wie folgt aussehen (ich bin kein VB-Codierer):

Public Class XEditablePost 
    Public Property Pk() As Integer 
    Public Property Value() As String 
End Class 

.... 

Public Function save(payload As XEditablePost) As String 
    .... 
End Function 

Hoffnung, das hilft.

+0

Danke dir, es funktioniert !!!! –

+0

Bitte markieren Sie meine Antwort als Lösung. Danke. – atitsbest

Verwandte Themen