2016-10-19 4 views
-2

コントローラでこのメソッドを呼び出す必要があります。これを行う方法がわからないのは、DataAccess.csのメソッドです。以下はコントローラのメソッドを呼び出す方法は?

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 
} 

私のコントローラ

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

エラーは何ですか? – Imad

答えて

0

は、あなたがこのような何かを試してみましたか?

[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

文字列をGuidに変更しましたmessageId public ActionResult MarkMessage(GuidのmessageId、boolのisread)、今私はどのようにmessageIdを呼び出しますか? – Sam

+0

@Simon編集のためのSimonありがとう。サム:メッセージIDを呼ぶ?申し訳ありませんが、私は今あなたの問題を理解していません。 –

0

DataAccess.csを確認してください。あなたが使っている名前空間が何であるか分かりません。時間のために私たちはそれを「DataAccess」と呼ぶでしょう。

コントローラの上部にusingを使用してください。

例:Using DataAccess;

次にあなたが直接MarkMessage

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

注機能にアクセスすることができます:あなたは、すべてのアクションメソッドの外でそれを呼び出すことによってdataをグローバルにすることができます。他のアクションメソッドにも使用できるようになりました。

+1

MarkMessageは静的で、インスタンス上で呼び出すことはできません。あなたの答えを削除してください。 – Imad

+0

@Sam MarkMessageを静的にする必要がありますか? –

+0

MarkMessageの近くに 'EnquiryController.MarkMessage(Guid、bool)'と表示されます:すべてのコードパスが値を返すわけではありませんか? – Sam

0

DataAccess.MarkMessage(params)を使用して静的メソッドを呼び出します。

関連する問題