Data refresh issue in ASP.NET MVC 2 application
I am just getting started with ASP.NET MVC 2 applications and I stumbled upon a problem. I am having problems updating tables. The debugger doesn't report any error, it just doesn't do anything ... I hope some of them can help me. Thank you for your time. This is my controller code ...
public ActionResult Edit(int id)
{
var supplierToEdit = (from c in _entities.SupplierSet
where c.SupplierId == id
select c).FirstOrDefault();
return View(supplierToEdit);
}
//
// POST: /Supplier/Edit/5
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Supplier supplierToEdit)
{
if (!ModelState.IsValid)
return View();
try
{
var originalSupplier = (from c in _entities.SupplierSet
where c.SupplierId == supplierToEdit.SupplierId
select c).FirstOrDefault();
_entities.ApplyPropertyChanges(originalSupplier.EntityKey.EntitySetName, supplierToEdit);
_entities.SaveChanges();
// TODO: Add update logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
This is my view ...
<h2>Edit</h2>
<% using (Html.BeginForm()) {%>
<%= Html.ValidationSummary(true) %>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%= Html.LabelFor(model => model.CompanyName) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.CompanyName) %>
<%= Html.ValidationMessageFor(model => model.CompanyName) %>
</div>
<div class="editor-label">
<%= Html.LabelFor(model => model.ContactName) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.ContactName) %>
<%= Html.ValidationMessageFor(model => model.ContactName) %>
</div>
<div class="editor-label">
<%= Html.LabelFor(model => model.ContactTitle) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.ContactTitle) %>
<%= Html.ValidationMessageFor(model => model.ContactTitle) %>
</div>
<div class="editor-label">
<%= Html.LabelFor(model => model.Address) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Address) %>
<%= Html.ValidationMessageFor(model => model.Address) %>
</div>
<div class="editor-label">
<%= Html.LabelFor(model => model.City) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.City) %>
<%= Html.ValidationMessageFor(model => model.City) %>
</div>
<div class="editor-label">
<%= Html.LabelFor(model => model.PostalCode) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.PostalCode) %>
<%= Html.ValidationMessageFor(model => model.PostalCode) %>
</div>
<div class="editor-label">
<%= Html.LabelFor(model => model.Country) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Country) %>
<%= Html.ValidationMessageFor(model => model.Country) %>
</div>
<div class="editor-label">
<%= Html.LabelFor(model => model.Telephone) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Telephone) %>
<%= Html.ValidationMessageFor(model => model.Telephone) %>
</div>
<div class="editor-label">
<%= Html.LabelFor(model => model.Fax) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Fax) %>
<%= Html.ValidationMessageFor(model => model.Fax) %>
</div>
<div class="editor-label">
<%= Html.LabelFor(model => model.HomePage) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.HomePage) %>
<%= Html.ValidationMessageFor(model => model.HomePage) %>
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
<% } %>
<div>
<%= Html.ActionLink("Back to List", "Index") %>
</div>
+2
a source to share
3 answers
Guess you are getting an exception. Try throwing exeception in Try catch statement
try
{
var originalSupplier = (from c in _entities.SupplierSet
where c.SupplierId == supplierToEdit.SupplierId
select c).FirstOrDefault();
_entities.ApplyPropertyChanges(originalSupplier.EntityKey.EntitySetName, supplierToEdit);
_entities.SaveChanges();
// TODO: Add update logic here
return RedirectToAction("Index");
}
catch(Exception ex)
{
throw ex;
return View();
}
Because I think it is putting something on.
0
a source to share
try it
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Supplier supplierToEdit)
{
if (!ModelState.IsValid)
return View();
try
{
var originalSupplier = (from c in _entities.SupplierSet
where c.SupplierId == supplierToEdit.SupplierId
select c).FirstOrDefault();
_entities.UpdateModel(originalSupplier);
_entities.ApplyPropertyChanges(originalSupplier.EntityKey.EntitySetName, supplierToEdit);
_entities.SaveChanges();
// TODO: Add update logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
0
a source to share