2016-10-19 3 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 Спасибо Саймон за редактирование. Сэм: Позвоните в сообщение? Извините, я не понимаю вашу проблему сейчас. –

0

Проверьте Пространство имен DataAccess.cs. Я не уверен, какое пространство имен у вас есть. поэтому на время мы будем называть его «DataAccess».

используйте using в верхней части вашего контроллера.

Ex: 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

@ У вас есть необходимость, чтобы MarkMessage был статичным? –

+0

Вблизи Markmessage говорится: «ЗапросКонтроллер.MarkMessage (Guid, bool)»: не все пути кода возвращают значение? – Sam

0

Используйте DataAccess.MarkMessage(params), чтобы позвонить своему статическому методу.

Смежные вопросы