c# - 表单不返回值 ASP.NET Core 2.2
问题描述
我正在尝试从输入元素返回值,但即使值不同,它也会返回 0。
如果这个问题“微不足道”,我深表歉意。但如果你能给我一个答案,那将是一个很大的帮助。
应该将数据添加到数据库的函数:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DodajProizvod(string naziv, int kategorijaId)
{
Proizvod proizvod = new Proizvod
{
KategorijaId = kategorijaId,
Naziv = naziv
};
db.Proizvodi.Add(proizvod);
await db.SaveChangesAsync();
return RedirectToAction("VratiProizvode", kategorijaId);
}
型号类:
public class Proizvod
{
[Key]
public int ProizvodId { get; set; }
[StringLength(30)]
[Required(ErrorMessage = "Unesite Naziv Proizvoda")]
public string Naziv { get; set; }
[Required(ErrorMessage = "Izaberite Kategoriju")]
public int KategorijaId { get; set; }
public Kategorija Kategorija { get; set; }
}
看法:
<form asp-action="DodajProizvod" method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input asp-for="KategorijaId" name="kategorijaId" value="@ViewBag.kategorijaId" disabled class="form-control" />
<div class="form-group">
<label asp-for="Naziv" class="control-label"></label>
<input asp-for="Naziv" name="naziv" class="form-control" />
<span asp-validation-for="Naziv" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Dodaj Proizvod" class="btn btn-primary" />
<a class="btn btn-primary" asp-action="VratiProizvode" asp-route-kategorijaId="@ViewBag.kategorijaId">Otkazi</a>
</div>
</form>
正如您在输入中看到的,值为 3:
但是当我提交时,它返回0:
解决方案
您应该将disabled
属性替换readonly
为输入标签KategorijaId
<input asp-for="KategorijaId" value="@ViewBag.kategorijaId" readonly class="form-control" />
更改action
为
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DodajProizvod(Proizvod model)
然后改成view
这个。
@model Proizvod
<form asp-action="DodajProizvod" method="post" asp-antiforgery="true">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input asp-for="KategorijaId" value="@ViewBag.kategorijaId" readonly class="form-control" />
<div class="form-group">
<label asp-for="Naziv" class="control-label"></label>
<input asp-for="Naziv" class="form-control" />
<span asp-validation-for="Naziv" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Dodaj Proizvod" class="btn btn-primary" />
<a class="btn btn-primary" asp-action="VratiProizvode" asp-route-kategorijaId="@ViewBag.kategorijaId">Otkazi</a>
</div>
</form>
推荐阅读
- java - 如何在 Web 应用程序中构建良好的安全架构?
- java - 使用 Jackson lib 从 JSON 获取嵌套数组 - Java
- c# - NEST DBGeography
- typescript - TypeScript Immer 类型的参数不可分配给 DraftArray 类型的参数
- php - 我的 PHP 页面参考错误:缺少控制器
- android - RxKotlin - 错误的订阅,observeOn 线程更改主题的活动?
- dart - Flutter Widget 测试:StreamBuilder 快照有 connectionState = waiting with a non-empty Stream
- angular - 根据输入参数类型在模板中显示 div
- c# - 绑定到 WPF MVVM 中的鼠标事件
- python - 导入 psa 时无法导入名称设置错误