Upload plików na serwer - generowanie widoku.

0

Witam,

otóż piszę apkę internetową (ASP.NET MVC5) i napotkałem problem.

Utworzyłem model Category, CategoryViewModel, CategoryController. Napisałem odpowiednią metodę w kontrolerze (jak poniżej). Klikam elegancko prawym na nazwie metody -> add View -> wybieram jak na pierwszym zdjęciu, -> ok i wyskakuje mi błąd. Nasuwa się pytanie, jak stworzyć widok do CategoryViewModelu, bo jak stworzę do modelu Category i zmienię ręcznie referencje do CategoryViewModel to niby działa, ale przy uploadzie pliku wyskakuje błąd. Tak być nie może. Proszę o podpowiedź.

Screeny:
http://fotserv.pl/?topic=load&image=1458067690-1.JPG

http://fotserv.pl/?topic=load&image=1458067712-2.JPG

Dodam, że dopiero zaczynam przygodę z C#.net. Z góry dzięki za wyrozumiałość i wszelką pomoc.

Model Category:

namespace NESTshop.Models
{
    public class Category
    {
        [Key]
        public int CategoryID { get; set; }
        [Display(Name ="Nazwa kategorii")]
        public string CategoryTitle { get; set; }
        [Display(Name ="Opis kategorii")]
        public string CategoryDescription { get; set; }
        [Display(Name = "Ikona Kategorii")]
        public byte[] CategoryFile { get; set; }

        public virtual ICollection<Product> Product { get; set; }
    }
} 

WidokModelu Category:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace NESTshop.Models
{
    public class CreateCategoryViewModel
    {
        [Display(Name ="LP.")]
        public int CategoryID { get; set; }

        [Required]
        [StringLength(100)]
        [Display(Name = "Nazwa kategorii")]
        public string CategoryTitle { get; set; }

        [StringLength(500)]
        [Display(Name = "Opis kategorii")]
        public string CategoryDescription { get; set; }

        [Required]
        [Display(Name = "Ikona kategorii")]
        public HttpPostedFileBase CategoryFile { get; set; }
    }
} 

Fragment kontrolera modelu Category:

 // GET: Categories/Create
        public ActionResult Create()
        {
            return View(new CreateCategoryViewModel());
        }

        // POST: Categories/Create
        // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
        // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create(CreateCategoryViewModel ccvm)
        {
            if (ModelState.IsValid)
            {
                return View(ccvm);
            }
            byte[] uploadedFile = new byte[ccvm.CategoryFile.InputStream.Length];
            ccvm.CategoryFile.InputStream.Read(uploadedFile, 0, uploadedFile.Length);

            Category cat = new Category { CategoryTitle = ccvm.CategoryTitle, CategoryFile = uploadedFile };
            catRepo.InsertCategory(cat);
            catRepo.Save();
            return View("Index", catRepo.GetCategory());
        }
0

Rozwiązane. brakowało "!" w if (ModelState.IsValid)

1 użytkowników online, w tym zalogowanych: 0, gości: 1