Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HttpPost模型ID始终为0_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# HttpPost模型ID始终为0

C# HttpPost模型ID始终为0,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有一个更新页面,获取包含我的模型的ViewModel。当我将其加载到页面时,一切正常,但当我提交更改时,我的模型ID总是0,我的意思是几乎总是。我正在学习一个教程,我完全按照他所做的做了,而且仍然0 这是我的POST方法,我在其中传递VM-in参数 [HttpPost] [ValidateAntiForgeryToken] public IActionResult Update(ExpenseVM obj) { if (ModelState.Is

我有一个更新页面,获取包含我的模型的ViewModel。当我将其加载到页面时,一切正常,但当我提交更改时,我的模型ID总是0,我的意思是几乎总是。我正在学习一个教程,我完全按照他所做的做了,而且仍然0

这是我的POST方法,我在其中传递VM-in参数

    [HttpPost]
    [ValidateAntiForgeryToken]
    public IActionResult Update(ExpenseVM obj)
    {
        if (ModelState.IsValid)
        {
            _db.Expenses.Update(obj.Expense);
            _db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(obj);
    }
这是我的ID的HTML/C代码

<input type="hidden" asp-for="Expense.Id" value="@Model.Expense.Id" name="Id"/>

当我加载我的页面时,我的ID被加载,一切正常。 在调试过程中,我的HTML中包含以下内容:

<input type="hidden" value="1" name="Id" data-val="true" data-val-required="The Id field is required." id="Expense_Id">

我找到了它不起作用的原因

我的HTML是这样的

<form method="post" asp-action="Update">
   <div class="border p-3">
      <div class="form-group row">
         <h2 class="text-black-50 pl-3">Update Expense</h2>
      </div>
      <div class="row">
         <input type="hidden" asp-for="Expense.Id" value="@Model.Expense.Id" name="Id"/>
         <div class="col-12">
            ... BLABLABLA
         </div>
      </div>
   </div>
</form>
<form method="post" asp-action="Update">
   <input asp-for="Expense.Id" hidden/>
   <div class="border p-3">
      <div class="form-group row">
         <h2 class="text-black-50 pl-3">Update Expense</h2>
      </div>
      <div class="row">
         <div class="col-12">
            ... BLABLABLA
         </div>
      </div>
   </div>
</form>
而且效果很好

现在请不要问我为什么,因为我不知道,但是如果有人知道为什么?我洗耳恭听