2015-07-29 2 views
0

У меня проблема с моим кодом, ожидаю, что ключевое слово не работает в asp.net mvc4, я не знаю, в чем проблема, но когда я его написал, инфраструктура .net не покрасила его синий !!Ожидание mvc4 не работает

это мой код

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using System.Web.Security; 
using workflow.Authorize; 
using System.Web.Script.Serialization; 
using workflow.DataHolders; 
using workflow.Models; 
using workflow; 
using System.Net; 
using System.Net.Mail; 

    [AllowAnonymous] 
    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult ValidateAndSignUp(ForCompany newCompany) 
    { 
     if (ModelState.IsValid) 
     { 
      company NewCompany = new company(); 
      TryUpdateModel(NewCompany); 
      context.companies.Add(NewCompany); 
      int processStatus= context.SaveChanges(); 
      if (processStatus != 0) 
      { 
       MailMessage message = new MailMessage(); 
       message.To.Add(newCompany.Email); 
       message.Subject = "You have created new account"; 
       message.Body = "Hi, Welcom to HWorkflow website this email is to approve your account and to creat the first user, please click on the link below to approve your account and to creat your first user"; 
       message.From = new MailAddress("[email protected]"); 
       message.IsBodyHtml = true; 

       var credential = new NetworkCredential 
       { 
        UserName = "hworkflowteam", // replace with valid value 
        Password = "No-access" // replace with valid value 
       }; 
       var smtp = new SmtpClient(); 
       smtp.Credentials = credential; 
       smtp.Host = "mail.hworkflow.com"; 
       smtp.Port = 25; 
       smtp.EnableSsl = true; 
       await smtp.SendMailAsync(message); 

      } 
      return RedirectToAction("index", "Home"); 
     } 
     else 
     { 
      return View("signUp", newCompany); 
     } 
    } 

поэтому, пожалуйста, может кто-нибудь помочь мне решить эту проблему.

+0

Цвет это синий? Что вы имеете в виду? Как это не работает? –

+0

У меня ошибка, что оператор может использоваться только с асинхронным методом, но я не знаю, почему он не принимает его с помощью метода SendMailAsync !!! – user3260672

+0

@AhmNaim: компилятор предоставит вам сообщение об ошибке, которое сообщает вам, что именно делать. –

ответ

2

Вы должны отметить свой метод как async и вернуть Task<T>

public async Task<ActionResult> ValidateAndSignUp(ForCompany newCompany) 
{ 
    await ... 
}  
+0

спасибо большое, он работает, но я не отвечаю, что я должен принять вас или @Matt – user3260672

+0

@AhmNaim Оба решения верны, ваш выбор (я был первым;)) –

1

Вашего метод подпись не означает, что это асинхронный/awaitable метод.

попробовать

public async Task<ActionResult> ValidateAndSignUp(ForCompany newCompany) 
.... 
+0

Jamie избил меня к нему :-) – Matt

+0

Простите, что ! :) –

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