私はここにmvc3アプリケーションを持っています私の問題は同じページにありますつまりIndex.cshtml
私は2つの部分的なビューcontrolpartial.cshtml
を持っていますwebgridpartial.cshtml
これで、データベースにデータを挿入すると正常に機能し、ページがリダイレクトされIndex.cshtml
、URLも明確になります。
しかし、編集時に編集ボタンをクリックしてすべての値を更新し、その値を送信すると、データベースで完全に更新されますが、ページを再度リダイレクトすることIndex.cshtml
も、URLがクリアされることもありません:(
そのため、編集を行った後は値を編集できず、インデックスURLを手動でリセットする必要があります。
何か推測はありますか?
Index.cshtml
@model Mapping.Models.SecurityIdentifierMappingViewModel
@{
ViewBag.Title = "Index";
}
索引
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@*Partial control for all controls*@
<div id="main">
<div style="float:left;width:30%">
@Html.Partial("_ControlsPartial",Model)
</div>
<div style="margin-left:600px;margin-top:-20px">
@Html.Partial("_WebGridPartial",Model.MappingWebGridList)
</div>
</div>
HomeController.cs
mydataEntities dbContext = new mydataEntities();
DataRepository objRepository = new DataRepository();
//GET
public ActionResult Index(string userAction="Create",int id = 0 )
{
var mappingobj = new SecurityIdentifierMappingViewModel();
mappingobj.MappingWebGridList = dbContext.SecurityIdentifierMappings.ToList();
if (id!=null && id > 0)
{
mappingobj.MappingControls = dbContext.SecurityIdentifierMappings.Find(id);
if (userAction == "Delete")
{
dbContext.SecurityIdentifierMappings.Remove(mappingobj.MappingControls);
dbContext.SaveChanges();
}
}
else
{
mappingobj.MappingControls = new SecurityIdentifierMapping();
mappingobj.MappingControls.PricingSecurityID = 0;
mappingobj.MappingControls.CUSIP = "";
}
mappingobj.PricingSecurities = objRepository.GetPricingSecurityID();
mappingobj.CUSIPs = objRepository.GetCUSIP();
return View(mappingobj);
}
//POST
[HttpPost]
public ActionResult Index(SecurityIdentifierMappingViewModel objModel)
{
//edit code
if (objModel.MappingControls.Id > 0)
{
if (ModelState.IsValid)
{
dbContext.Entry(objModel.MappingControls).State = EntityState.Modified;
try
{
dbContext.SaveChanges();
return RedirectToAction("Index");
}
catch (System.Data.Entity.Validation.DbEntityValidationException ex)
{
throw;
}
}
}
//insert code
else
{
if (ModelState.IsValid)
{
dbContext.SecurityIdentifierMappings.Add(objModel.MappingControls);
try
{
dbContext.SaveChanges();
return RedirectToAction("Index");
}
catch (System.Data.Entity.Validation.DbEntityValidationException ex)
{
throw;
}
}
}
objModel.MappingWebGridList = dbContext.SecurityIdentifierMappings.ToList();
objModel.PricingSecurities = objRepository.GetPricingSecurityID();
objModel.CUSIPs = objRepository.GetCUSIP();
objModel.MappingControls = new SecurityIdentifierMapping();
return View(objModel);
}