Получение ошибки: не все пути кода возвращают значение

Я новичок в MVC C # и застрял. Посоветуйте пожалуйста как это исправить. Я получаю сообщение об ошибке при добавлении. При наведении курсора на красную волнистую линию появляется сообщение «Не все пути кода возвращают значение».

    public ActionResult Add(ShapeInputModel dto, FormCollection collection)
    {

        var model = new GeoRegions();

        if (TryUpdateModel(model))
        {


            var destinationFolder = Server.MapPath("/App_Data/KML");
            var postedFile = dto.Shape;

            if (postedFile != null)
            {
                var fileName = Path.GetFileName(postedFile.FileName);
                var path = Path.Combine(destinationFolder, fileName);
                postedFile.SaveAs(path);

                //Save to Database
                Db.AddGeoRegions(model);
                return RedirectToAction("Index");

            }

            return View();

        }
    }
 Liam20 июн. 2018 г., 11:15

Ответы на вопрос(10)

Решение Вопроса
Use This :
public ActionResult Add(ShapeInputModel dto, FormCollection collection)
{
    var model = new GeoRegions();

    if (TryUpdateModel(model))
    {
        var destinationFolder = Server.MapPath("/App_Data/KML");
        var postedFile = dto.Shape;

        if (postedFile != null)
        {
            var fileName = Path.GetFileName(postedFile.FileName);
            var path = Path.Combine(destinationFolder, fileName);
            postedFile.SaveAs(path);

            //Save to Database
            Db.AddGeoRegions(model);
            return RedirectToAction("Index");
        }
        return View();

    }
    return null; // you can change the null to anything else also.
}

что ваши функции ничего не возвращают, еслиTryUpdateModel(model) = false, Итак, добавив строкуreturn null или жеreturn 'any other thing' решит проблему!

 24 мая 2012 г., 18:27
Помните, если вы используетеnull, вы всегда должны проверять значение, если оно равно нулю или нет, когда возвращается методом!
 user138277024 мая 2012 г., 15:14
Спасибо всем за ваши ответы. Я многому научился у всех вас, и я действительно ценю это, хотя мне еще многое предстоит узнать. Я использовал return null и все работает отлично!

(TryUpdateModel(model)) возвращаетсяfalse, Может быть, вы хотели иметьreturn View(); внеif?

ы должны вернуть значение или вызвать исключение. (Я думаю, что возвращение нулевого в порядке в этом случае)

if () & quot; состояние. Что делать, если условие не выполняется ?? программа не вернет значение. Итак, верните любое значение по умолчанию вне условия if, оно может быть в другом состоянии.

public ActionResult Add(ShapeInputModel dto, FormCollection collection)
{

    var model = new GeoRegions();

    if (TryUpdateModel(model))
    {
     ....
     ....
    }
    return default_value;//it may be in else condition also.
}

Попытайся. И если ваша проблема решена, пометьте ответ. Так что это полезно для других.

return если & quot; if & quot; никогда не вводится

Мне нравится всегда сохранять баланс между использованными if-else [with return], чтобы я мог сразу увидеть возвращаемые значения (и что все пути имеют возвращаемое значение):

if (TryUpdateModel(model))
{
    ...
    if (postedFile != null)
    {
        ...
        return RedirectToAction("Index");
    } else {
        return View();
    }
} else {
    return View(); // or null/whatever is appropriate
}

Конечно, ReSharper часто говорит мне, что у меня есть «бесполезный» еще заявления ;-)

Удачного кодирования.

if (TryUpdateModel(model))
{
    // lots of stuff

    return View();
}

Так что будет возвращено, еслиTryUpdateModel неправда?

Ваш метод должен вернутьActionResult даже когдаif утверждение неверно

if (TryUpdateModel(model)) делает ваш, рутина только возвращает значение, когда условиеtrue; если это не так, ничего не будет возвращено, что нарушает сигнатуру метода.

есть путь к коду, где функция будет завершена, но не будет возвращать значение. Функция с возвращаемым типом всегда должна либо возвращать значение, либо выдавать исключение.

В вашем случае, еслиTryUpdateModel(model) возвращаетсяfalse, у вас нет возвращаемого значения.

я вижу, что у вас есть команда return (return View () внутри блока операторов & quot; if & quot; теперь, если условие & quot; If & quot; не удалось выполнить, вне него нет оператора return & apos; Сфера охвата. Самый простой способ будет

 }

            return View();

        }
return null; // Depends upon your code though. you might want to return something else
}

добавлять

 return null;

до последней строки}

Ваш ответ на вопрос