У меня три модели. AssetRequest, IssueAsset
и ReturnAsset
. Я хочу обновить / изменить значение атрибута RequestStatus
для модели AssetRequest
на основе текущего идентификатора, чтобы оно стало Returned
(в настоящее время это значение Issued
, см. Тип данных enum) после выполнения метода HttpPost
post на ReturnAsset
контроллере.
Вот мои модели.
Модель AssetRequest
public enum RequestStatus
{
Waiting,
Reject,
Approved,
Issued,
Returned,
Canceled
}
public class AssetRequest
{
[Key]
public int AssetRequestId { get; set; }
public int AssetId { get; set; }
public DateTime RequestDate { get; set; }
public RequestStatus? RequestStatus { get; set; }
public virtual Asset Asset { get; set; }
public virtual IssueAsset IssueAsset { get; set; }
}
Модель IssueAsset
public class IssueAsset
{
[Key]
public int IssueId { get; set; }
public int AssetRequestId { get; set; }
public DateTime IssueDate { get; set; }
public DateTime? ReturnDate { get; set; }
public virtual AssetRequest AssetRequest { get; set; }
public virtual ReturnAsset ReturnAsset { get; set; }
}
Модель ReturnAsset
public class ReturnAsset
{
[Key]
public int ReturnAssetId { get; set; }
public int IssueId { get; set; }
public DateTime ReturnDate { get; set; }
public virtual IssueAsset IssueAsset { get; set; }
}
Вот мой HttpGet
код ReturnAsset
контроллера.
// GET: ReturnAssets/Create
public IActionResult Create(int? id)
{
if (id == null)
{
return BadRequest();
}
var issue = _context.IssueAssets.Find(id);
if (issue == null)
{
return NotFound();
}
var returnAsset = new ReturnAsset { IssueId = issue.IssueId, ReturnDate = DateTime.Now, IssueAsset = issue };
ViewData["IssueId"] = new SelectList(_context.IssueAssets, "IssueId", "IssueId");
return View(returnAsset);
}
А вот мой HttpPost
код.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("ReturnAssetId,IssueId,ReturnDate")] ReturnAsset returnAsset)
{
if (ModelState.IsValid)
{
returnAsset.IssueAsset.AssetRequest.RequestStatus = RequestStatus.Returned;
_context.ReturnAssets.Add(returnAsset);
await _context.SaveChangesAsync();
return RedirectToAction("Index", "IssueAssets");
}
ViewData["IssueId"] = new SelectList(_context.IssueAssets, "IssueId", "IssueId", returnAsset.IssueId);
return View(returnAsset);
}
Но он дал мне следующую ошибку.
Пожалуйста, помогите мне!