【发布时间】:2014-12-17 10:32:51
【问题描述】:
我在 MVC 中有保存功能,数据存储到我的数据库中。
当我输入表单时,保存功能会添加数据...但是要修改我正在努力的当前数据。
控制器(保存)
[HttpPost]
public ActionResult Save(ReadingsUsersForm readingForm)
{
var model = new AddEditReadingsViewModel(readingForm);
var addMeterReading = new M2CPDAL.Models.CustomerPortal.SerialReadingsUser();
addMeterReading.ser_num = readingForm.SerialNumber;
addMeterReading.prod_num = readingForm.ProductNumber;
addMeterReading.UserName = readingForm.UserName;
addMeterReading.AltUserName = readingForm.AltUserName;
cpctx.SerialReadingsUsers.Add(addMeterReading);
cpctx.SaveChanges();
return View("_ReadingsUsers", model);
}
型号:
public ReadingsUsersForm()
{
SerialNumber = ser_num;
ProductNumber = _cpctx.vw_CurrentFleet.Where(s => s.ser_num == SerialNumber).Select(c => c.prod_num).FirstOrDefault();
UserName = _cpctx.SerialReadingsUsers.Where(s => s.ser_num == ser_num).Select(c => c.UserName).FirstOrDefault();
AltUserName = _cpctx.SerialReadingsUsers.Where(s => s.ser_num == ser_num).Select(c => c.AltUserName).FirstOrDefault();
}
查看
@using (Html.BeginForm("Save", "Device", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<fieldset>
<legend>Reading Details</legend>
<div>
@Html.LabelFor(m => m.SerialNumber)
@Html.TextBoxFor(m => m.SerialNumber, new { @class = "form", @readonly = "readonly" })
@Html.ValidationMessageFor(m => m.SerialNumber)
</div>
<div>
@Html.LabelFor(m => m.ProductNumber)
@Html.TextBoxFor(m => m.ProductNumber, new { @class = "form2", @readonly = "readonly" })
@Html.ValidationMessageFor(m => m.ProductNumber)
</div>
<div>
@Html.LabelFor(m => m.UserName)
@Html.TextBoxFor(m => m.UserName, new { @id = "UserNameReading", @class = "form-add" })
@Html.ValidationMessageFor(m => m.Form.UserName)
</div>
<div>
@Html.LabelFor(m => m.AltUserName)
@Html.TextBoxFor(m => m.AltUserName, new { @id = "AltUserNameReading", @class = "form-add2" })
@Html.ValidationMessageFor(m => m.Form.AltUserName)
</div>
<div class="modal-footer">
<input type="submit" id="ButtonSave" value="Submit" class="btn btn-primary">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
</div>
</fieldset>
}
我需要在 actionResult Save 方法中修改用户名。当我打开表单并且它在数据库中已经有一个用户名时,它会显示这个。但是如果我尝试更改它,它会给我一个错误,因为数据库中已经有一些东西了。
谢谢
【问题讨论】:
-
显示模型的完整定义(这是哪个模型 - 你的方法表示 3 个模型?)
-
抱歉方法是 ReadingsUsersForm。但是有很多代码试图让它尽可能简单。一旦我得到了如何做到这一点的方向,我应该会很自在地这样做。
-
那么您使用
Save方法创建了一个新的addMeterReading记录,并且您尝试使用相同的方法来更新数据? -
是的,但我不确定如何更新数据,,,
标签: asp.net .net asp.net-mvc asp.net-mvc-4