Cannot convert from 'System.Web.Mvc.FormCollection'

本文关键字:Mvc FormCollection Web System Cannot convert from | 更新日期: 2023-09-27 18:03:54

我得到两个以下错误在我的ASP。. NET MVC 3项目:

错误1最佳重载方法匹配"SklepAlfa.Models.ProduktyController.Edytuj (int,sklepalfa . models . producktyedytujviewmodel)'有一些无效的参数

错误2参数2:不能从"System.Web.Mvc。FormCollection"SklepAlfa.Models.ProduktyEdytujViewModel"

这是我的productyedytujviewmodel .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");
    }

我做错了什么?

Cannot convert from 'System.Web.Mvc.FormCollection'

在post操作中,你可以只传递模型对象,它将包含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");
}