2016-10-19 23 views
-2

Ich muss diese Methode in der Controller nicht sicher, wie dies zu tun ist unten ist meine Methode in DataAccess.cs.So rufen Sie eine Methode im Controller auf?

public static string MarkMessage(Guid messageId, bool isread) //New method created //call this in controller //Method passes in Guid messagedID and bool isread 
{ 
    string errorMessage = string.Empty; //Error is empty 
    try 
    { 
     var pcs_caseportalmessage = new pcs_caseportalmessage() //new portal case message created 
     { 
      Id = messageId, //Id is messageID 
      pcs_MessageRead = isread //CRM field pcs_MessageRead set to isread 
     }; 
     ServerConnection.CrmService.Update(pcs_caseportalmessage); //Update the caseportal message 
    } 
    catch (Exception ex) //Catch exception message 
    { 
     errorMessage = errorMessage + ex.Message; //Error message 
    } 
    return errorMessage; //returns error 
} 

Unten ist mein Controller

[HttpPost] 
public ActionResult MarkMessage(Guid messageId, bool isread) 
{ 
    if (isread == true) 
    { 
     //Need to call CRM in data access 
    } 
} 
+0

Was ist der Fehler? – Imad

Antwort

0

Haben Sie so etwas wie dies versucht?

[HttpPost] 
public ActionResult MarkMessage(string messageId, bool isread) 
{ 
    if (isread == true) 
    { 
     //Need to call CRM in data access 
     string result = DataAccess.MarkMessage(new Guid(messageId), isread); 
    } 
} 
+0

Ich habe die Zeichenfolge geändert, um Guid messageId öffentlichen ActionResult MarkMessage (Guid messageId, Bool Isread), wie würde ich jetzt die MessageId aufrufen? – Sam

+0

@Simon Danke Simon für die Bearbeitung. Sam: Ruf die Nachricht an? Entschuldigung, ich verstehe dein Problem jetzt nicht. –

0

Überprüfen Sie den Namespace von DataAccess.cs. Ich bin mir nicht sicher, welchen Namensraum du benutzt hast. vorläufig werden wir es "DataAccess" nennen.

Verwenden Sie using an der Spitze Ihres Controllers.

Ex: Using DataAccess;

Dann können Sie direkt auf die Funktion zugreifen MarkMessage

[HttpPost] 
    public ActionResult MarkMessage(string messageId, bool isread) 
    { 
     if (isread == true) 
     { 
      //Directly Access the Function 
      DataAccess.MarkMessage(parameters); 
     } 
    } 

Hinweis: Sie können data global machen, indem sie außerhalb aller Aktionsmethoden aufrufen. Damit es auch in anderen Aktionsmethoden verwendet werden kann.

+1

MarkMessage ist statisch, kann nicht in Instanz aufgerufen werden. Löschen Sie Ihre Antwort. – Imad

+0

@Sam ist es notwendig, dass MarkMessage statisch sein sollte? –

+0

In der Nähe von Markmessage heißt es EnquiryController.MarkMessage (Guid, bool): Nicht alle Code-Pfade geben einen Wert zurück? – Sam

0

Verwenden Sie DataAccess.MarkMessage(params), um Ihre statische Methode aufzurufen.

Verwandte Themen