2017-02-02 3 views
0

Привет всем Я создаю приложение, используя asp.net mvc с базой данных codefirst, которая позволяет пользователю сохранять изображение вместе с некоторым текстом в базе данных, но я хочу, чтобы пользователь мог представить текст сам по себе без изображений. Проблема в том, что в настоящее время, если пользователь отправляет текст без изображения, он разбивается на эту строку, если (file.ContentLength> 0) , и дает исключение с нулевой ссылкой. Спасибо за любую помощь.Загрузка изображений сбой, если Null

foreach (HttpPostedFileBase file in model.Files) 
      { 
       if (file.ContentLength > 0) 
       { 
        string fileName = file.FileName; 
        string Extension = Path.GetExtension(fileName); 
        string path = Path.Combine(Server.MapPath("~/Images/"), fileName); 
        file.SaveAs(path); 
        MyModel image = new MyModel() 
        { 
         Path = fileName, 
         FileName = fileName 
        }; 
        post.Images.Add(image); 
       } 
      } 

вид

@Html.TextBoxFor(model => model.Files, new { type = "file", multiple = "multiple" }) 
+0

Он падает на строку 'foreach', потому что свойство' Files' модели 'null' -' if (model.Files! = Null) {foreach (.... ' –

+0

try file.ContentLength! = Null && file.ContentLength> 0. Не нужно проверять файл model.file, если в объекте, который вы не хотите использовать в цикле foreach, нет файлов. – KevDevMan

+0

@KevDevMan, вам нужно проверить на 'null' (вы не можете перебирать 'null') –

ответ

0

Здравствуйте @ARandomUserNamedChuck,

У меня нет твердого раствора, но я думаю, что способ исправить это должно быть это теоретически: Вы должны использовать цикл и преобразуйте текст и поля изображения в строку с помощью .length. После этого вы вызываете поле, куда идет загрузка, и если в его пустом, но текстовом поле есть что-то, вы продолжаете процесс. Надеюсь, этот подход поможет.

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