![](/img/trans.png)
[英]ASP.NET.MVC 5 How can i display information about who created an element?
[英]How can i create column with information about who Created an element
你能幫助我嗎。 如何使用有關誰創建了一個元素的信息來創建列(列CreatedBy)我使用Windows身份驗證創建了ASP Net Core 2.0 MVC Web應用程序。 我實現了有關誰最后一次修改成功的信息,但我無法通過CreatedBy來獲取信息。 我的模特是
public class TestModel
{
public int Id { get; set; }
public string Description { get; set; }
public string CreatedBy { get; set; }
[DataType(DataType.Date)]
public DateTime Created { get;}
public TestModel()
{
Created = DateTime.Now;
}
public string ModifiedBy { get; set; }
public DateTime Modified { get; set; }
}
我的創建者控制器
public async Task<IActionResult> Create([Bind("Id,Description")] TestModel testModel)
{
if (ModelState.IsValid)
{
_context.Add(testModel);
testModel.CreatedBy = this.User.Identity.Name;
// testModel.ModifiedBy = this.User.Identity.Name;
testModel.Modified = DateTime.Now;
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(testModel);
}
編輯控制器
public async Task<IActionResult> Edit(int id, [Bind("Id,Description")] TestModel KestModel)
{
if (id != KestModel.Id)
{
return NotFound();
}
if (ModelState.IsValid)
{
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!TestModelExists(KestModel.Id))
{
return NotFound();
}
else
{
throw;
}
}
return RedirectToAction(nameof(Index));
}
return View();
}
根據您的評論,我了解到您想根據更新請求更新Modifyby並在創建請求中分配createdby,
為此,您應檢查是否已分配ID,如果已分配ID,則不是更新請求,否則是創建請求
嘗試以下代碼更改
public async Task<IActionResult> Create([Bind("Id,Description")] TestModel testModel)
{
if (ModelState.IsValid)
{
if(testModel.Id > 0){
// the entity is already created and it is modify request
_context.Entry(testModel).State = EntityState.Modified;
testModel.ModifiedBy = this.User.Identity.Name;
testModel.Modified = DateTime.Now;
}
else{
// it is create request
_context.Entry(testModel).State = EntityState.Added;
testModel.CreatedBy = this.User.Identity.Name;
testModel.Created = DateTime.Now;
}
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(testModel);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.