Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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# 如何在MVC中保存对编辑视图的更改_C#_Asp.net Mvc - Fatal编程技术网

C# 如何在MVC中保存对编辑视图的更改

C# 如何在MVC中保存对编辑视图的更改,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个MVC应用程序,它显示数据库中的项目。每个项目都有一个详细信息和一个编辑视图。编辑视图允许用户通过显示值对记录进行更改。我遇到的问题是,我无法获取要保存的更改 我相信,当用户在“索引”视图中单击“编辑”时,第一个编辑操作结果用于显示记录。当用户按下编辑视图中的“保存更改”按钮时,应调用第二个编辑操作结果 调试时,我确实发现诸如“item.item\u No\u”之类的值没有被视图中的值填充 我已经从我的控制器提供了代码 任何帮助都将不胜感激 尼克 抱歉,_data的定义如下:priv

我有一个MVC应用程序,它显示数据库中的项目。每个项目都有一个详细信息和一个编辑视图。编辑视图允许用户通过显示值对记录进行更改。我遇到的问题是,我无法获取要保存的更改

  • 我相信,当用户在“索引”视图中单击“编辑”时,第一个编辑操作结果用于显示记录。当用户按下编辑视图中的“保存更改”按钮时,应调用第二个编辑操作结果

  • 调试时,我确实发现诸如“item.item\u No\u”之类的值没有被视图中的值填充

我已经从我的控制器提供了代码

任何帮助都将不胜感激

尼克


抱歉,_data的定义如下:private TitaniumDataContext _data=new TitaniumDataContext();在post操作中item和itemNo的值是多少?在编辑视图中,您是否使用
@Html.HiddenFor(model=>model.item\u No)
?我确实有其他更简单的MVC编辑,可以正确保存,但发现这一编辑更复杂。这一个有许多其他字段存储在accordion中,这些字段是不同表中的值,我是否需要像声明项目字段一样声明它们以使编辑工作正常进行?对不起,是的,这是Linq to Sql。你可以看出我是个初学者!
        public ActionResult Edit(string itemNo)
    {
        LinnWorksItemViewModel model = new LinnWorksItemViewModel(_data.Connection.ConnectionString, itemNo);
        return View(model);

        // Declare item no here?
            foreach (string upload in Request.Files)
            {
                if (!Request.Files[upload].HasFile()) continue;
                string path = AppDomain.CurrentDomain.BaseDirectory + "uploads/";
                string fileName = Path.GetFileName(Request.Files[upload].FileName);
                Request.Files[upload].SaveAs(Path.Combine(path, fileName));
            }
           return View(model);       
    }

       [HttpPost]
    public ActionResult Edit(Item item, string itemNo)
    {
        LinnWorksItemViewModel model = new LinnWorksItemViewModel(_data.Connection.ConnectionString, itemNo);

        try
        {
            Item _linnItem = _data.Items
                .Where(x => x.Item_No_ == item.Item_No_)
                .FirstOrDefault();
            _linnItem.Description = item.Description;
            _linnItem.Search_Description = item.Extended_Description;
            _linnItem.Default_Barcode = item.Default_Barcode;
            _linnItem.Variations_Group_Code = item.Variations_Group_Code;
            _linnItem.LinnWork_Category_Code = item.LinnWork_Category_Code;
            _linnItem.Unit_Cost = item.Unit_Cost;
            _linnItem.Unit_Price = item.Unit_Price;
            _linnItem.Shipping_Agent_Code = item.Shipping_Agent_Code;
            _linnItem.Package_Group_Code = item.Package_Group_Code;
            _linnItem.Stockkeeping_Units = item.Stockkeeping_Units;
            _linnItem.Weight = item.Weight;
            _linnItem.Width = item.Width;
            _linnItem.Height = item.Height;
            _linnItem.Depth = item.Depth;

            _data.SubmitChanges();
            return RedirectToAction("Index");

        }
        catch (Exception ex)
        {
            string message = ex.Message;
            return View();
        }
    }