はい、Create と Edit は実質的に同じなので、通常は次のようにします。
コントローラ:
public class ActivityController : BaseController
{
public ActionResult Index()
{
var model = //Get your List model here...
return View(model);
}
public ActionResult Create()
{
var model = new ActivityModel(); //Create new instance of whatever your model is
return View("Edit", model); //NOTE: Pass the model to the "Edit view
}
public ActionResult Edit(int id)
{
var model = // your logic here to get your model based on ID param
return View(model);
}
[HttpPost]
public ActionResult Delete(int id)
{
try
{
// your logic here to delete based on ID param
return Json(new { Success = true, Message = "Entity updated" }); //AJAX result
}
catch (Exception x)
{
return Json(new { Success = false, Message = x.GetBaseException().Message }); //AJAX result
}
}
[HttpPost]
public ActionResult Update(ActivityModel model)//a single action to handle both add and edit operations
{
if (!ModelState.IsValid)
{
return Json(new { Success = false, Message = "Please correct any errors and try again" });//AJAX result
}
try
{
if (entity.Id == 0)
{
//your logic for inserting
}
else
{
//your logic for updating
}
return Json(new { Success = true });//AJAX result
}
catch (Exception x)
{
return Json(new { Success = false, Message = x.GetBaseException().Message }); //AJAX result
}
}
}
このように、ほとんどの場合、 と の 2 つのビューを作成する必要がありIndex.cshtml
ますEdit.cshtml
。
編集ビューにこれがあることを覚えておいてください:
@Html.HiddenFor(m => m.Id)
これは、Update()
アクションで挿入または更新を行う必要があるかどうかを確認するために使用されます。
あなたのコードを見なければ、それがあなたの状況に当てはまるかどうかはわかりません...