Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法从';System.Web.Mvc.FormCollection';至';MyProject.Models.EditViewModel';_C#_Asp.net Mvc 3_Model_Edit - Fatal编程技术网

C# 无法从';System.Web.Mvc.FormCollection';至';MyProject.Models.EditViewModel';

C# 无法从';System.Web.Mvc.FormCollection';至';MyProject.Models.EditViewModel';,c#,asp.net-mvc-3,model,edit,C#,Asp.net Mvc 3,Model,Edit,我在ASP.NET MVC 3项目中遇到以下两个错误: 错误1与的最佳重载方法匹配 'SklepAlfa.Models.ProduktyController.Edytuj(int, SklepAlfa.Models.ProduktyEdytujViewModel)“”具有一些无效参数 错误2参数2:无法从转换 “System.Web.Mvc.FormCollection”到 'sklepafa.Models.ProduktyEdytujViewModel' 这是我的ProduktyEdytujV

我在ASP.NET MVC 3项目中遇到以下两个错误:

错误1与的最佳重载方法匹配 'SklepAlfa.Models.ProduktyController.Edytuj(int, SklepAlfa.Models.ProduktyEdytujViewModel)“”具有一些无效参数

错误2参数2:无法从转换 “System.Web.Mvc.FormCollection”到 'sklepafa.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; }
    }
}

我做错了什么?提前谢谢。

在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");
}

这是有道理的!但不幸的是,如果我从HttpPost中删除int-id,我会得到一个错误,方法“Edytuj”的重载不包含两个参数。请检查
路由
表,并确保将
id
定义为
urlparmeter。可选的
我检查了它,默认情况下是这样的。您使用的
asp.net mvc
的哪个版本?我认为不是版本3或者您的视图不是强类型视图?再次您好,我已经找到了“方法'Edytuj'没有重载需要2个参数”问题的原因-我已经删除了在创建项目时附加的测试模块。现在应用程序正常启动,感谢您的建议,它可以正常工作:)。非常感谢你。
[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");
}