在我的控制器中,我有一个更新字段的简单方法。我希望它更新当前记录的字段。比如:
public IActionResult Approve()
{
ThisForm update = (from p in _context.ThisForm where p.ThisFormID == [**what do I put here?**] select p).SingleOrDefault();
update.ApprovalStatus = 'Approved';
_context.SaveChanges();
return RedirectToAction("Index");
}
这将是一个超级简单的东西,但我不知道如何引用这个表单的ID。我已经在我的控制器中定义了这个方法,并且我已经在我的视图中的一个表单中将这个方法指定为asp-action:
<form asp-action="Approve">
<input type="submit" value="Approve" class="btn btn-outline-success" />
</form>
假设该字段名为"thisthem"。
您必须将ThisFormID
作为参数传递给动作Approve()
,因此它看起来类似于Approve(int formId)
,我假设您在调用此操作时可以访问此ThisFormID
。
这取决于你如何调用动作Approve
编辑:
提交表单时没有传递任何数据。您的模型(或者视图模型)应该看起来像这样:
class FormModel { public int ThisFormID {get;set;} }
(或者您可以将此ThisFormID
作为视图模型)
你的视图应该看起来像这样:
@model FormModel
<form asp-action="Approve">
<input asp-for="ThisFormId" type="hidden" />
<input type="submit" value="Approve" class="btn btn-outline-success" />
</form>
那么你的动作可以像这样:
public IActionResult Approve(FormModel formModel)
{
ThisForm update = (from p in _context.ThisForm where p.ThisFormID == formModel.ThisFormID select p).SingleOrDefault();
update.ApprovalStatus = 'Approved';
_context.SaveChanges();
return RedirectToAction("Index");
}
你可以在这里查看更多的例子:提交表单与参数,asp.net core Mvc
或者直接谷歌如何提交带有参数的表单