asp dot net BeginForm post方法什么都不发送给控制器

时间:2019-03-25 12:49:06

标签: c# asp.net-mvc

我想在/ create网页上有一个表格。该表格包含:名称,说明和价格。填写后,它将数据发送到控制器。

控制器无法接收数据,我也不知道为什么。

我尝试删除页面并重新创建它们,但这没有用。我也尝试了@ html.textlabelfor。这也行不通。

这是我的查看代码:

@using (Html.BeginForm("Create", "Beheer", FormMethod.Post))
{
    <div class="form-group">
        <label for="name">Name:</label>
        <input type="text" class="form-control" placeholder="Fill article name" name="Naam">
    </div>
    <div class="form-group">
        <label for="des">Description:</label>
        <input type="text" class="form-control" placeholder="Fill in article description" name="Omschrijving">
    </div>
    <div class="form-group">
        <label for="price">Price:</label>
        <input type="number" class="form-control" placeholder="Fill in article price" name="Prijs">
    </div>
    <input type="submit" class="btn btn-default" value="submit" />
}

这是我的控制器代码:

    [HttpPost]
    public IActionResult Create(ArtikelModel artikelModel)
    {
        return View(artikelModel);
    }

    [HttpGet]
    public IActionResult Create()
    {
        return View();
    }

这是我的模特:

    public int Id { get; set; }
    public string Naam { get; set; }
    public string Omschrijving { get; set; }
    public decimal Prijs { get; set; }
    public byte[] Foto { get; set; }
    public decimal Korting { get; set; }
    public List<ReviewModel> Reviews { get; set; }

我希望ArtikelModel可以填充用户输入的数据。

1 个答案:

答案 0 :(得分:0)

由于您指示根本没有调用controller方法,因此可能的问题是@LaljiDhameliya提到的控制器名称。因此,由于您的视图将“ Beheer”作为控制器,由于ASP.NET MVC约定,您的控制器应称为“ BeheerController”(您的问题中未包含此代码,因此我们无法确定是否就是这种情况)