并非所有代码路径都返回一个值.我只是想知道怎么解决这个问题

本文关键字:想知道 问题 解决 一个 代码 路径 返回 | 更新日期: 2023-09-27 18:08:55

当我将鼠标悬停在指数上时,它下面有一条红线,上面写着

"UnauthEnquiryController.index(UnauthenticatedEnquiryViewModel(":并非所有代码路径都返回值。

我只是想知道这是怎么回事?

[HttpPost]
public ActionResult Index(UnauthenticatedEnquiryViewModel unauthenticatedEnquiryViewModel)
{
    //unauthenticatedEnquiryViewModel.EnquiryType;
    //NEED TO ADD A METHOD THAT SENDS FILE TO CRM HERE
    if (ModelState.IsValid)
    {
        if (1 == 0) //take off
        {
            string fromAddress = WebConfigurationManager.AppSettings["FromEmail"]; //gets email from web.config file
                                                                                   //var toAddress = new MailAddress(); //need to get this from crm            
            var enquiry = DataAccessEnquiry.GetEnquiryCategoryEmail(unauthenticatedEnquiryViewModel.EnquiryType); //gets the to address based on CRm
            string UnauthEmailSubject = WebConfigurationManager.AppSettings["UnauthEmailSubject"]; //gets subject from web.config file
            MailMessage mailMessage = new MailMessage(fromAddress, enquiry.Email); //put to address frrom variable declared above
            mailMessage.Subject = UnauthEmailSubject;
            StringBuilder mailbuilder = new StringBuilder();
            mailbuilder.AppendLine("First name: " + unauthenticatedEnquiryViewModel.FirstName);
            mailbuilder.AppendLine("Last name: " + unauthenticatedEnquiryViewModel.LastName);
            mailbuilder.AppendLine("Communication: " + unauthenticatedEnquiryViewModel.CCommmunication);
            mailbuilder.AppendLine("Email: " + unauthenticatedEnquiryViewModel.Email);
            mailbuilder.AppendLine("Confiirmation of email: " + unauthenticatedEnquiryViewModel.ConfirmEmailAddress);
            mailbuilder.AppendLine("Mobile telephone No: " + unauthenticatedEnquiryViewModel.MobileTelephoneNo);
            mailbuilder.AppendLine("Confiirmation of mobile telephone no: " + unauthenticatedEnquiryViewModel.ConfirmMobileTelephoneNo);
            mailbuilder.AppendLine("Alternative telephone no: " + unauthenticatedEnquiryViewModel.AlternativeTelephoneNo);
            mailbuilder.AppendLine("Confiirmation of alternative telephone no: " + unauthenticatedEnquiryViewModel.ConfirmAlternativeTelephoneNo);
            mailbuilder.AppendLine("I am a: " + unauthenticatedEnquiryViewModel.Profession);
            mailbuilder.AppendLine("Enquiry Type: " + unauthenticatedEnquiryViewModel.EnquiryType);
            mailbuilder.AppendLine("Your message: " + unauthenticatedEnquiryViewModel.YourMessage);

            if (unauthenticatedEnquiryViewModel.File != null) // this finds overall null
            {
                foreach (var file in unauthenticatedEnquiryViewModel.File) // loop through every File
                {
                    if (file != null) //Finds induvidual null
                    {
                        var extension = new FileInfo(file.FileName).Extension.ToUpper();
                        mailMessage.Attachments.Add(new Attachment(file.InputStream, file.FileName));
                    }
                }
            }
            mailMessage.Body = mailbuilder.ToString();
            SmtpClient smtpClient = new SmtpClient();
            smtpClient.Send(mailMessage);
        }
        return View("Unauthsuccess", unauthenticatedEnquiryViewModel);
    }
    unauthenticatedEnquiryViewModel.Professions = DataAccessEnquiry.GetProfessionUnauthenticated();
    unauthenticatedEnquiryViewModel.EnquiryTypes = new List<EnquiryType>();
}

并非所有代码路径都返回一个值.我只是想知道怎么解决这个问题

[HttpPost]
public ActionResult Index(UnauthenticatedEnquiryViewModel unauthenticatedEnquiryViewModel)
{
    //unauthenticatedEnquiryViewModel.EnquiryType;
    //NEED TO ADD A METHOD THAT SENDS FILE TO CRM HERE
    if (ModelState.IsValid)
    {
        ...
        return View("Unauthsuccess", unauthenticatedEnquiryViewModel);
    }
    unauthenticatedEnquiryViewModel.Professions = DataAccessEnquiry.GetProfessionUnauthenticated();
    unauthenticatedEnquiryViewModel.EnquiryTypes = new List<EnquiryType>();
    //THIS path doesn't return value.
    //HERE return somethig
}

仅当if (ModelState.IsValid)为true时才返回值,但如果为false,您希望返回什么?

这里创建了一个条件,

if(ModelState.Isvalid)
{
      {// LOTS OF CODE}
      return View(....);
}

但是如果

ModelState.Isvalid == false

如果为true,则函数不会返回任何

您在if条件中返回值,仅此而已。您必须在if条件之后返回