MVC - 如何在 LINQ 查询中引用"this.ID"?



在我的控制器中,我有一个更新字段的简单方法。我希望它更新当前记录的字段。比如:

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

或者直接谷歌如何提交带有参数的表单

最新更新