[英]Persistent data in an ASP.NET MVC controller
我想使用相同的視圖在數據庫中插入和更新數據。
當我處於“編輯模式”時,我需要知道該版本前后的值是什么(要知道已更改的內容並根據該內容執行操作)。
我無法在模型中存儲“編輯前”數據,因為沒有映射,並且由於在get和post之間創建了新實例,因此無法將數據存儲在控制器中。
例如,我沒有其他想法使用靜態類或隱藏字段,但是聽起來不錯。
如何以適當的方式實現這一目標?
謝謝
您可以在中查看較早的數據
var data = context.DEMO_MAST.Where(x => x.ID == model.ID).FirstOrDefault();
和模型中的新數據,只需使用If
Condition,就可以在單個方法中同時執行AddEdit
。
AddEdit方法
public int AddOrEdit(DEMO_MAST model)
{
try
{
var data = context.DEMO_MAST.Where(x => x.ID == model.ID).FirstOrDefault();
if (data == null)
{
model.CREATED_ON = DateTime.Now;
this.context.DEMO_MAST.Add(model);
}
else
{
model.MODIFIED_ON = DateTime.Now;
this.context.Entry(data).CurrentValues.SetValues(model);
}
int flg = this.context.SaveChanges();
return flg;
}
catch (Exception ex)
{
return 0;
}
}
找
public DEMO_MAST Find(int ID)
{
return context.DEMO_MAST.where(x=>x.ID==ID).FirstorDefault();
}
控制者
[HttpGet]
public ActionResult Index(int ID)
{
DEMO_MAST model=new DEMO_MAST();
if(ID>0)
{
model=Find(ID);
}
return View(model);
}
[HttpPost]
public ActionResult Index(DEMO_MAST model)
{
if(ModelState.IsValid)
{
int i = AddEdit(model);
if(i>0)
{
ViewBag.Message="Record AddEdit Successfully";
}
else
{
ViewBag.Message="Error";
}
}
return View(model);
}
因此,當您運行應用程序時,將顯示簡單的Index()
視圖。
索引視圖以獲取數據
using (Html.BeginForm("Index", "Home"))
{
<div class="row">
<div class="col-md-6 col-sm-3">
</div>
<div class="col-md-6 col-sm-9">
<div id="sample_6_filter" class="dataTables_filter">
<label>
@Html.TextBox("ID", ViewBag.ID == null ? "" : (string)ViewBag.ID, new { @class = "form-control input-inline", placeholder = "ID" })
<button class="btn green-haze" type="submit" id="submit">
<i class="fa fa-search"></i>
</button>
</label>
</div>
</div>
</div>
}
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
@Html.HiddenFor(x => x.ID)
@Html.HiddenFor(x => x.CREATED_ON)
<div class="form-horizontal">
<div class="form-group">
<label class="control-label col-sm-4">Name</label>
<div class="col-sm-5">
@Html.TextBoxFor(a => a.Name, new { @class = "form-control", @maxlength = "50" })
</div>
<div class="col-sm-3 text-danger">
</div>
</div>
<div class="form-group">
<div class="col-sm-12 text-center">
<button type="submit" name="command" value="createUser" class="btn btn-lg btn-green hvr-underline-from-center">Submit</button>
</div>
</div>
}
您需要輸入ID
或數據庫的任何Uniq
字段才能在View中獲得結果。 當您單擊按鈕時,將調用[HttpGet] Index
方法並在視圖中顯示記錄。
然后您可以修改您的數據。單擊提交,它將用於
“ [HttPost]索引”仍然按照上述代碼和方法自動完成。
現在,您只需要在視圖中設置數據即可。就是這樣。
希望你能理解!! 請享用!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.