[英]How can i create column with information about who Created an element
Can you help me. 你能帮助我吗。 How can i create column with information about who Created an element(column CreatedBy) I created asp net core 2.0 MVC Web-Application with Windows authentication.
如何使用有关谁创建了一个元素的信息来创建列(列CreatedBy)我使用Windows身份验证创建了ASP Net Core 2.0 MVC Web应用程序。 I implemented information about who was modifying last, sucessfuly, but i dont get it with CreatedBy.
我实现了有关谁最后一次修改成功的信息,但我无法通过CreatedBy来获取信息。 My model is
我的模特是
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; }
}
My controller of Create 我的创建者控制器
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);
}
Edit controller 编辑控制器
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();
}
As per your comment I understood that you want to update modifyby on update request and assign createdby at the create request, 根据您的评论,我了解到您想根据更新请求更新Modifyby并在创建请求中分配createdby,
For this you should check the Id which is already assign or not, If id is already assign than it is update request else it is create request 为此,您应检查是否已分配ID,如果已分配ID,则不是更新请求,否则是创建请求
Try below code changes 尝试以下代码更改
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.