سلام.من یک برنامه نویس مبتدی در زمینه۵ asp.net mvc هستم اما با c# کار کرده ام.متاسفانه در شروع کار با مشکل ادیت رکوردهای دیتابیس برخورد کردم.دکمه های create,detail,delete بدرستی کار میکند اما ادیت نمیکند.نام دیتابیس customer و جدول peace می باشد .بخش مربوط به ادیت چنین است.لطفا راهنماییم کنید.
homecontroller:
public ActionResult Index()
{
custemdb dbcust = new custemdb();
ModelState.Clear();
return View(dbcust.GetItemList());
}
[HttpGet]
public ActionResult Edit(int id)
{
custemdb ItemHandler = new custemdb();
return View(ItemHandler.GetItemList().Find(itemmodel => itemmodel.ID == id));
}
[HttpPost]
public ActionResult Edit(int id, Custem iList)
{
try
{
custemdb ItemHandler = new custemdb();
ItemHandler.UpdateItem(iList);
return RedirectToAction("Index");
//return to the index page if complete
return RedirectToAction("index");
}
catch { return View(); }
}
--------
custemdb.cs
connection();namespace WebApplication3.Models
{
public class custemdb
{
private SqlConnection con;
private void connection()
{
string constring = ConfigurationManager.ConnectionStrings["customer"].ToString();
con = new SqlConnection(constring);
}
public List<Custem> GetItemList()
{
connection();
List<Custem> iList = new List<Custem>();
string query = "SELECT * FROM peace";
SqlCommand cmd = new SqlCommand(query, con);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
con.Open();
adapter.Fill(dt);
con.Close();
foreach (DataRow dr in dt.Rows)
{
iList.Add(new Custem
{
ID = Convert.ToInt32(dr["ID"]),
code = Convert.ToInt32(dr["code"]),
peaces = Convert.ToString(dr["peaces"]),
});
}
return iList;
}
}
public bool UpdateItem(Custem iList)
{
connection();
string query = "UPDATE peace SET code = '" + iList.code + "', peaces = '" + iList.peaces + " WHERE ID = " + iList.ID;
SqlCommand cmd = new SqlCommand(query, con);
con.Open();
int i = cmd.ExecuteNonQuery();
con.Close();
if (i >= 1)
return true;
else
return false;
}
}
.......edit view.......
@model WebApplication3.Models.Custem
@{
ViewBag.Title = "Edit";
}
<h2>Edit</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Custem</h4>
<hr />
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.ID)
<div class="form-group">
@Html.LabelFor(model => model.code, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.code)
@Html.ValidationMessageFor(model => model.code)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.peaces, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.peaces)
@Html.ValidationMessageFor(model => model.peaces)
</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>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
خیلی سادست دوست عزیز ، مدل شما به درستی پر نمیشه و به کنترلر نمیاد، ورودی های کنترلر رو چک بکینن ایا همه فیلد های require مدل میان یا یکیشون خالی رها میشه که ثبت نمیشه
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)