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