Не удается преобразовать из «System.Web.Mvc.FormCollection» в «MyProject.Models.EditViewModel» - PullRequest
0 голосов
/ 28 июля 2011

Я получаю две следующие ошибки в моем проекте ASP.NET MVC 3:

Ошибка 1 Наилучший перегруженный метод соответствует для SklepAlfa.Models.ProduktyController.Edytuj (int, SklepAlfa.Models.ProduktyEdytujViewModel) 'имеет недопустимые аргументы

Ошибка 2 Аргумент 2: невозможно преобразовать из' System.Web.Mvc.FormCollection 'в' SklepAlfa.Models.ProduktyEdytujViewModel '

Вот мой ProduktyEdytujViewModel.cs: ​​

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using SklepAlfa.Models;
using System.Web.Mvc;

namespace SklepAlfa.Models
{
    public class ProduktyEdytujViewModel
    {
        public Produkty Produkt { get; set; }
        public int id_produktu { get; set; }
        public IEnumerable<Kategorie_produktow> Kategorie { get; set; }
    }
}

И здесь он используется в моем контроллере:

    public ActionResult Edytuj(int id) //Edit
    {
        var model = new ProduktyEdytujViewModel //ProductsEditViewModel
        {
            Produkt = sklepBaza.PobierzProduktWgId(id), //GetProductById
            Kategorie = sklepBaza.PobierzKategorieProduktow() //GetProductCategories
        };

        return View(model);
    }

    [HttpPost]
    public ActionResult Edytuj(int id, ProduktyEdytujViewModel model) 
    {
        if (!ModelState.IsValid)
        {
            model.Produkt = sklepBaza.PobierzProduktWgId(id); 
            model.Kategorie = sklepBaza.PobierzKategorieProduktow(); 
            return View(model);
        }
        return RedirectToAction("Kategorie");
    }

Что я делаю не так?Заранее спасибо.

1 Ответ

0 голосов
/ 28 июля 2011

В посте вы можете передать только объект модели, и он будет содержать id

[HttpPost]
public ActionResult Edytuj(ProduktyEdytujViewModel model) 
{
    if (!ModelState.IsValid)
    {
        model.Produkt = sklepBaza.PobierzProduktWgId(model.id); 
        model.Kategorie = sklepBaza.PobierzKategorieProduktow(); 
        return View(model);
    }
    return RedirectToAction("Kategorie");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...