我正在尝试进行编辑而不会留下痕迹并且它正在运行的问题是它无法获取我正在编辑的记录的ID或主键。下面是我的服务存储库中的代码,直到我使用存储库模式的视图。
这是我在INTERFACE SERVICE REPOSITORY中的声明
void Edit(DonataryKind model);
这是我在SERVICE REPOSITORY中的代码/方法
public void Edit(DonataryKind model)
{
_donataryKindyRepository.Update(model);
}
这是我在INTERFACE BUSINESS LOGIC中的声明
void Edit(DonataryKindView model);
这是我在BUSINESS LOGIC中的代码/方法
public void Edit(DonataryKindView model)
{
using (var donRepo = new DonataryKindRepository())
{
var objDon = donRepo.GetById(model.KindID);
if (objDon != null)
{
objDon.KindName = model.KindName;
donRepo.Edit(objDon);
donRepo.Save();
}
}
}
我的CONTROLLER中的编辑代码
[HttpGet]
public ActionResult Edit(int id)
{
var objdonk= new DonataryKindLogic().GetById(id);
return View(objdonk);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(int id, DonataryKindView model)
{
if (ModelState.IsValid)
{
try
{
var objDonK = new DonataryKindLogic();
objDonK.Edit(model);
return RedirectToAction("Index");
}
catch (Exception e)
{
ModelState.AddModelError(string.Empty, "Error! " + e.Message);
}
}
return View(model);
}
我的代码编辑视图
@model Sunday.Model.DonataryKindView
@{
ViewBag.Title = "Edit";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Edit</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>DonataryKindView</h4>
<hr />
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.KindID)
<div class="form-group">
@Html.LabelFor(model => model.KindName, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.KindName)
@Html.ValidationMessageFor(model => model.KindName)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
答案 0 :(得分:0)
为什么不在编辑方法中从模型中选择它?
model.KindID